From 9e74a14facb4c70af5aed88f128f8c4b294830fa Mon Sep 17 00:00:00 2001 From: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com> Date: Fri, 15 Sep 2023 11:37:12 -0700 Subject: [PATCH 01/29] chore: update deploy playground with new backend API (#3358) * Error out `dfx deploy --playground` when in CI environment. * Report to the playground backend that this request comes from `dfx`. It's only used for monitoring purposes. * Sync the API with https://github.com/dfinity/motoko-playground/pull/192 * No changelog update needed, as the playground feature is already in the changelog. --- Cargo.lock | 35 ++++++ .../playground_backend/service/pool/Logs.mo | 84 ++++++++++++++ .../playground_backend/service/pool/Main.mo | 109 ++++++++++++++---- .../service/pool/Metrics.mo | 7 +- .../playground_backend/service/pool/PoW.mo | 49 +++----- .../playground_backend/service/pool/Types.mo | 32 ++++- e2e/assets/playground_backend/wasm-utils.wasm | Bin 582171 -> 1217357 bytes .../src/config/model/network_descriptor.rs | 2 +- src/dfx/Cargo.toml | 1 + .../operations/canister/motoko_playground.rs | 36 +++++- 10 files changed, 290 insertions(+), 65 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 904154645a..d61ffbbe06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -835,6 +835,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "ci_info" +version = "0.14.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eb8c8d139abf8673b1805f52f6ad398825e24c397dc9ac8283fe588dd6c80d9" +dependencies = [ + "envmnt", +] + [[package]] name = "cipher" version = "0.3.0" @@ -1331,6 +1340,7 @@ dependencies = [ "byte-unit", "bytes", "candid 0.9.1", + "ci_info", "clap", "console", "crc32fast", @@ -1553,6 +1563,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "dyn-clone" version = "1.0.11" @@ -1699,6 +1715,16 @@ dependencies = [ "termcolor", ] +[[package]] +name = "envmnt" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d73999a2b8871e74c8b8bc23759ee9f3d85011b24fafc91a4b3b5c8cc8185501" +dependencies = [ + "fsio", + "indexmap 1.9.3", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -1874,6 +1900,15 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fsio" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad0ce30be0cc441b325c5d705c8b613a0ca0d92b6a8953d41bd236dc09a36d0" +dependencies = [ + "dunce", +] + [[package]] name = "funty" version = "2.0.0" diff --git a/e2e/assets/playground_backend/service/pool/Logs.mo b/e2e/assets/playground_backend/service/pool/Logs.mo index 10e467328c..7e28c0af99 100644 --- a/e2e/assets/playground_backend/service/pool/Logs.mo +++ b/e2e/assets/playground_backend/service/pool/Logs.mo @@ -1,4 +1,88 @@ +import Map "mo:base/RBTree"; +import {compare} "mo:base/Text"; +import {toArray} "mo:base/Iter"; +import {now = timeNow} "mo:base/Time"; +import {toText} "mo:base/Int"; +import {get} "mo:base/Option"; + module { + public type Origin = { origin: Text; tags: [Text] }; + public type SharedStatsByOrigin = (Map.Tree, Map.Tree); + public class StatsByOrigin() { + var canisters = Map.RBTree(compare); + var installs = Map.RBTree(compare); + public func share() : SharedStatsByOrigin = (canisters.share(), installs.share()); + public func unshare(x : SharedStatsByOrigin) { + canisters.unshare(x.0); + installs.unshare(x.1); + }; + func addTags(map: Map.RBTree, list: [Text]) { + for (tag in list.vals()) { + switch (map.get(tag)) { + case null { map.put(tag, 1) }; + case (?n) { map.put(tag, n + 1) }; + }; + }; + }; + // if to is null, delete the from tag + func merge_tag_(map: Map.RBTree, from: Text, opt_to: ?Text) { + ignore do ? { + let n1 = map.remove(from)!; + let to = opt_to!; + switch (map.get(to)) { + case null { map.put(to, n1) }; + case (?n2) { map.put(to, n1 + n2) }; + }; + }; + }; + public func merge_tag(from: Text, to: ?Text) { + merge_tag_(canisters, from, to); + merge_tag_(installs, from, to); + }; + public func addCanister(origin: Origin) { + addTags(canisters, ["origin:" # origin.origin]); + addTags(canisters, origin.tags); + }; + public func addInstall(origin: Origin) { + addTags(installs, ["origin:" # origin.origin]); + addTags(installs, origin.tags); + }; + public func dump() : ([(Text, Nat)], [(Text, Nat)]) { + (toArray<(Text, Nat)>(canisters.entries()), + toArray<(Text, Nat)>(installs.entries()), + ) + }; + public func metrics() : Text { + var result = ""; + let now = timeNow() / 1_000_000; + let canister_playground = get(canisters.get("origin:playground"), 0); + let canister_dfx = get(canisters.get("origin:dfx"), 0); + let install_playground = get(installs.get("origin:playground"), 0); + let install_dfx = get(installs.get("origin:dfx"), 0); + let profiling = get(installs.get("wasm:profiling"), 0); + let asset = get(installs.get("wasm:asset"), 0); + let install = get(installs.get("mode:install"), 0); + let reinstall = get(installs.get("mode:reinstall"), 0); + let upgrade = get(installs.get("mode:upgrade"), 0); + result := result + # encode_single_value("counter", "create_from_playground", canister_playground, "Number of canisters created from playground", now) + # encode_single_value("counter", "install_from_playground", install_playground, "Number of Wasms installed from playground", now) + # encode_single_value("counter", "create_from_dfx", canister_dfx, "Number of canisters created from dfx", now) + # encode_single_value("counter", "install_from_dfx", install_dfx, "Number of Wasms installed from dfx", now) + # encode_single_value("counter", "profiling", profiling, "Number of Wasms profiled", now) + # encode_single_value("counter", "asset", asset, "Number of asset Wasms canister installed", now) + # encode_single_value("counter", "install", install, "Number of Wasms with install mode", now) + # encode_single_value("counter", "reinstall", reinstall, "Number of Wasms with reinstall mode", now) + # encode_single_value("counter", "upgrade", upgrade, "Number of Wasms with upgrad mode", now); + result; + }; + }; + public func encode_single_value(kind: Text, name: Text, number: Int, desc: Text, time: Int) : Text { + "# HELP " # name # " " # desc # "\n" # + "# TYPE " # name # " " # kind # "\n" # + name # " " # toText(number) # " " # toText(time) # "\n" + }; + public type Stats = { num_of_canisters: Nat; num_of_installs: Nat; diff --git a/e2e/assets/playground_backend/service/pool/Main.mo b/e2e/assets/playground_backend/service/pool/Main.mo index 5d42e6b8b3..ef519739b0 100644 --- a/e2e/assets/playground_backend/service/pool/Main.mo +++ b/e2e/assets/playground_backend/service/pool/Main.mo @@ -6,6 +6,7 @@ import Option "mo:base/Option"; import Nat "mo:base/Nat"; import Text "mo:base/Text"; import Array "mo:base/Array"; +import Buffer "mo:base/Buffer"; import List "mo:base/List"; import Deque "mo:base/Deque"; import Result "mo:base/Result"; @@ -17,29 +18,31 @@ import PoW "./PoW"; import Logs "./Logs"; import Metrics "./Metrics"; import Wasm "canister:wasm-utils"; -import Blob "mo:base/Blob"; -import Buffer "mo:base/Buffer"; -import Nat32 "mo:base/Nat32"; shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { let IC : ICType.Self = actor "aaaaa-aa"; let params = Option.get(opt_params, Types.defaultParams); var pool = Types.CanisterPool(params.max_num_canisters, params.canister_time_to_live, params.max_family_tree_size); let nonceCache = PoW.NonceCache(params.nonce_time_to_live); + var statsByOrigin = Logs.StatsByOrigin(); stable let controller = creator.caller; stable var stats = Logs.defaultStats; stable var stablePool : [Types.CanisterInfo] = []; stable var stableMetadata : [(Principal, (Int, Bool))] = []; stable var stableChildren : [(Principal, [Principal])] = []; + stable var stableTimers : [Types.CanisterInfo] = []; stable var previousParam : ?Types.InitParams = null; + stable var stableStatsByOrigin : Logs.SharedStatsByOrigin = (#leaf, #leaf); system func preupgrade() { - let (tree, metadata, children) = pool.share(); + let (tree, metadata, children, timers) = pool.share(); stablePool := tree; stableMetadata := metadata; stableChildren := children; + stableTimers := timers; previousParam := ?params; + stableStatsByOrigin := statsByOrigin.share(); }; system func postupgrade() { @@ -49,14 +52,19 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { }; }; pool.unshare(stablePool, stableMetadata, stableChildren); + for (info in stableTimers.vals()) { + updateTimer(info); + }; + statsByOrigin.unshare(stableStatsByOrigin); }; public query func getInitParams() : async Types.InitParams { params; }; - public query func getStats() : async Logs.Stats { - stats; + public query func getStats() : async (Logs.Stats, [(Text, Nat)], [(Text, Nat)]) { + let (canister, install) = statsByOrigin.dump(); + (stats, canister, install); }; public query func balance() : async Nat { @@ -68,7 +76,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { ignore Cycles.accept amount; }; - private func getExpiredCanisterInfo() : async Types.CanisterInfo { + private func getExpiredCanisterInfo(origin : Logs.Origin) : async Types.CanisterInfo { switch (pool.getExpiredCanisterId()) { case (#newId) { Cycles.add(params.cycles_per_canister); @@ -77,6 +85,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { let info = { id = cid.canister_id; timestamp = now }; pool.add info; stats := Logs.updateStats(stats, #getId(params.cycles_per_canister)); + statsByOrigin.addCanister(origin); info; }; case (#reuse info) { @@ -89,8 +98,9 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { Cycles.add topUpCycles; await IC.deposit_cycles cid; }; - // Lazily cleanup the reused canister - await IC.uninstall_code cid; + if (Option.isSome(status.module_hash)) { + await IC.uninstall_code cid; + }; switch (status.status) { case (#stopped or #stopping) { await IC.start_canister cid; @@ -98,6 +108,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { case _ {}; }; stats := Logs.updateStats(stats, #getId topUpCycles); + statsByOrigin.addCanister(origin); info; }; case (#outOfCapacity time) { @@ -107,8 +118,23 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { }; }; }; + func validateOrigin(origin: Logs.Origin) : Bool { + if (origin.origin == "") { + return false; + }; + for (tag in origin.tags.vals()) { + // reject server side tags + if (tag == "mode:install" or tag == "mode:reinstall" or tag == "mode:upgrade" or tag == "wasm:profiling" or tag == "wasm:asset") { + return false; + } + }; + return true; + }; - public shared ({ caller }) func getCanisterId(nonce : PoW.Nonce) : async Types.CanisterInfo { + public shared ({ caller }) func getCanisterId(nonce : PoW.Nonce, origin : Logs.Origin) : async Types.CanisterInfo { + if (not validateOrigin(origin)) { + throw Error.reject "Please specify a valid origin"; + }; if (caller != controller and not nonceCache.checkProofOfWork(nonce)) { stats := Logs.updateStats(stats, #mismatch); throw Error.reject "Proof of work check failed"; @@ -119,10 +145,14 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { throw Error.reject "Nonce already used"; }; nonceCache.add nonce; - await getExpiredCanisterInfo(); + await getExpiredCanisterInfo(origin); }; - public shared ({ caller }) func installCode(info : Types.CanisterInfo, args : Types.InstallArgs, profiling : Bool, is_whitelisted : Bool) : async Types.CanisterInfo { + type InstallConfig = { profiling: Bool; is_whitelisted: Bool; origin: Logs.Origin }; + public shared ({ caller }) func installCode(info : Types.CanisterInfo, args : Types.InstallArgs, install_config : InstallConfig) : async Types.CanisterInfo { + if (not validateOrigin(install_config.origin)) { + throw Error.reject "Please specify a valid origin"; + }; if (info.timestamp == 0) { stats := Logs.updateStats(stats, #mismatch); throw Error.reject "Cannot install removed canister"; @@ -132,14 +162,14 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { throw Error.reject "Cannot find canister"; } else { let config = { - profiling; + profiling = install_config.profiling; remove_cycles_add = true; limit_stable_memory_page = ?(16384 : Nat32); // Limit to 1G of stable memory backend_canister_id = ?Principal.fromActor(this); }; - let wasm = if (caller == controller) { + let wasm = if (caller == controller and install_config.is_whitelisted) { args.wasm_module; - } else if (is_whitelisted) { + } else if (install_config.is_whitelisted) { await Wasm.is_whitelisted(args.wasm_module); } else { await Wasm.transform(args.wasm_module, config); @@ -152,13 +182,42 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { }; await IC.install_code newArgs; stats := Logs.updateStats(stats, #install); - switch (pool.refresh(info, profiling)) { - case (?newInfo) newInfo; + + // Build tags from install arguments + let tags = Buffer.fromArray(install_config.origin.tags); + if (install_config.profiling) { + tags.add("wasm:profiling"); + }; + if (install_config.is_whitelisted) { + tags.add("wasm:asset"); + }; + switch (args.mode) { + case (#install) { tags.add("mode:install") }; + case (#upgrade) { tags.add("mode:upgrade") }; + case (#reinstall) { tags.add("mode:reinstall") }; + }; + let origin = { origin = install_config.origin.origin; tags = Buffer.toArray(tags) }; + statsByOrigin.addInstall(origin); + switch (pool.refresh(info, install_config.profiling)) { + case (?newInfo) { + updateTimer(newInfo); + newInfo; + }; case null { throw Error.reject "Cannot find canister" }; }; }; }; + func updateTimer(info: Types.CanisterInfo) { + func job() : async () { + pool.removeTimer(info.id); + // It is important that the timer job checks for the timestamp first. + // This prevents late-runner jobs from deleting newly installed code. + await removeCode(info); + }; + pool.updateTimer(info, job); + }; + public func callForward(info : Types.CanisterInfo, function : Text, args : Blob) : async Blob { if (pool.find info) { await InternetComputer.call(info.id, function, args); @@ -225,12 +284,19 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { throw Error.reject "Only called by controller"; }; stats := Logs.defaultStats; + statsByOrigin := Logs.StatsByOrigin(); + }; + public shared ({ caller }) func mergeTags(from: Text, to: ?Text) : async () { + if (caller != controller) { + throw Error.reject "Only called by controller"; + }; + statsByOrigin.merge_tag(from, to); }; // Metrics public query func http_request(req : Metrics.HttpRequest) : async Metrics.HttpResponse { if (req.url == "/metrics") { - let body = Metrics.metrics stats; + let body = Metrics.metrics(stats); { status_code = 200; headers = [("Content-Type", "text/plain; version=0.0.4"), ("Content-Length", Nat.toText(body.size()))]; @@ -278,7 +344,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { if (not pool.findId caller) { throw Error.reject "Only a canister managed by the Motoko Playground can call create_canister"; }; - let info = await getExpiredCanisterInfo(); + let info = await getExpiredCanisterInfo({origin="spawned"; tags=[]}); let result = pool.setChild(caller, info.id); if (not result) { throw Error.reject("In the Motoko Playground, each top level canister can only spawn " # Nat.toText(params.max_family_tree_size) # " descendants including itself"); @@ -299,12 +365,12 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { wasm_module : ICType.wasm_module; mode : { #reinstall; #upgrade; #install }; canister_id : ICType.canister_id; - is_whitelisted : Bool; }) : async () { switch (sanitizeInputs(caller, canister_id)) { case (#ok info) { let args = { arg; wasm_module; mode; canister_id }; - ignore await installCode(info, args, pool.profiling caller, is_whitelisted); // inherit the profiling of the parent + let config = { profiling = pool.profiling caller; is_whitelisted = false; origin = {origin = "spawned"; tags = [] } }; + ignore await installCode(info, args, config); // inherit the profiling of the parent }; case (#err makeMsg) throw Error.reject(makeMsg "install_code"); }; @@ -379,6 +445,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { #installCode : Any; #removeCode : Any; #resetStats : Any; + #mergeTags : Any; #wallet_receive : Any; #create_canister : Any; diff --git a/e2e/assets/playground_backend/service/pool/Metrics.mo b/e2e/assets/playground_backend/service/pool/Metrics.mo index 4165615f7c..6f29605d9f 100644 --- a/e2e/assets/playground_backend/service/pool/Metrics.mo +++ b/e2e/assets/playground_backend/service/pool/Metrics.mo @@ -1,6 +1,5 @@ import Text "mo:base/Text"; import Time "mo:base/Time"; -import Int "mo:base/Int"; import Logs "./Logs"; module { @@ -15,11 +14,7 @@ module { headers: [(Text, Text)]; body: Blob; }; - func encode_single_value(kind: Text, name: Text, number: Int, desc: Text, time: Int) : Text { - "# HELP " # name # " " # desc # "\n" # - "# TYPE " # name # " " # kind # "\n" # - name # " " # Int.toText(number) # " " # Int.toText(time) # "\n" - }; + let encode_single_value = Logs.encode_single_value; public func metrics(stats: Logs.Stats) : Blob { let now = Time.now() / 1_000_000; var result = ""; diff --git a/e2e/assets/playground_backend/service/pool/PoW.mo b/e2e/assets/playground_backend/service/pool/PoW.mo index 7792b74a17..213ef29a3f 100644 --- a/e2e/assets/playground_backend/service/pool/PoW.mo +++ b/e2e/assets/playground_backend/service/pool/PoW.mo @@ -2,54 +2,41 @@ import Splay "mo:splay"; import Time "mo:base/Time"; import Text "mo:base/Text"; import Int "mo:base/Int"; -import Debug "mo:base/Debug" module { public type Nonce = { - timestamp : Int; - nonce : Nat; + timestamp: Int; + nonce: Nat; }; - func nonceCompare(x : Nonce, y : Nonce) : { #less; #equal; #greater } { - if (x.timestamp < y.timestamp) { #less } else if (x.timestamp == y.timestamp and x.nonce < y.nonce) { - #less; - } else if (x.timestamp == y.timestamp and x.nonce == y.nonce) { #equal } else { - #greater; - }; + func nonceCompare(x: Nonce, y: Nonce): {#less;#equal;#greater} { + if (x.timestamp < y.timestamp) { #less } + else if (x.timestamp == y.timestamp and x.nonce < y.nonce) { #less } + else if (x.timestamp == y.timestamp and x.nonce == y.nonce) { #equal } + else { #greater } }; - public class NonceCache(TTL : Nat) { + public class NonceCache(TTL: Nat) { let known_nonces = Splay.Splay(nonceCompare); - public func add(nonce : Nonce) { + public func add(nonce: Nonce) { known_nonces.insert(nonce); }; public func pruneExpired() { let now = Time.now(); for (info in known_nonces.entries()) { - if (info.timestamp > now - TTL) { return }; + if (info.timestamp > now - TTL) { return; }; known_nonces.remove(info); }; }; - public func contains(nonce : Nonce) : Bool { - known_nonces.find(nonce); + public func contains(nonce: Nonce) : Bool { + known_nonces.find(nonce) }; - public func checkProofOfWork(nonce : Nonce) : Bool { + public func checkProofOfWork(nonce: Nonce) : Bool { let now = Time.now(); - if (nonce.timestamp < now - TTL) { - Debug.trap("too late"); - return false; - }; - if (nonce.timestamp > now + TTL) { - Debug.trap("too early"); - return false; - }; + if (nonce.timestamp < now - TTL) return false; + if (nonce.timestamp > now + TTL) return false; let raw = "motoko-playground" # (Int.toText(nonce.timestamp)) # (Int.toText(nonce.nonce)); - Debug.print(raw); let hash = Text.hash(raw); - Debug.print("The Motoko-calculated hash is " # debug_show (hash)); - if (hash & 0xc0000000 != 0) { - Debug.trap("other stuff failed"); - return false; - }; - true; + if (hash & 0xc0000000 != 0) return false; + true }; }; -}; +} diff --git a/e2e/assets/playground_backend/service/pool/Types.mo b/e2e/assets/playground_backend/service/pool/Types.mo index 54fbf070f7..440087095e 100644 --- a/e2e/assets/playground_backend/service/pool/Types.mo +++ b/e2e/assets/playground_backend/service/pool/Types.mo @@ -9,6 +9,7 @@ import Array "mo:base/Array"; import List "mo:base/List"; import Option "mo:base/Option"; import Int "mo:base/Int"; +import Timer "mo:base/Timer"; module { public type InitParams = { @@ -51,9 +52,11 @@ module { public class CanisterPool(size: Nat, ttl: Nat, max_family_tree_size: Nat) { var len = 0; var tree = Splay.Splay(canisterInfoCompare); + // Metadata is a replicate of splay tree, which allows lookup without timestamp. Internal use only. var metadata = TrieMap.TrieMap(Principal.equal, Principal.hash); var childrens = TrieMap.TrieMap>(Principal.equal, Principal.hash); var parents = TrieMap.TrieMap(Principal.equal, Principal.hash); + let timers = TrieMap.TrieMap(Principal.equal, Principal.hash); public type NewId = { #newId; #reuse:CanisterInfo; #outOfCapacity:Nat }; @@ -123,6 +126,24 @@ module { return true; }; + public func updateTimer(info: CanisterInfo, job : () -> async ()) { + let elapsed = Time.now() - info.timestamp; + let duration = if (elapsed > ttl) { 0 } else { Int.abs(ttl - elapsed) }; + let tid = Timer.setTimer(#nanoseconds duration, job); + switch (timers.replace(info.id, tid)) { + case null {}; + case (?old_id) { + // The old job can still run when it has expired, but the future + // just started to run. To be safe, the job needs to check for timestamp. + Timer.cancelTimer(old_id); + }; + }; + }; + + public func removeTimer(cid: Principal) { + timers.delete cid; + }; + private func notExpired(info: CanisterInfo, now: Int) : Bool = (info.timestamp > now - ttl); // Return a list of canister IDs from which to uninstall code @@ -140,17 +161,22 @@ module { result }; - public func share() : ([CanisterInfo], [(Principal, (Int, Bool))], [(Principal, [Principal])]) { + public func share() : ([CanisterInfo], [(Principal, (Int, Bool))], [(Principal, [Principal])], [CanisterInfo]) { let stableInfos = Iter.toArray(tree.entries()); let stableMetadata = Iter.toArray(metadata.entries()); - let stableChildrens = + let stableChildren = Iter.toArray( Iter.map<(Principal, List.List), (Principal, [Principal])>( childrens.entries(), func((parent, children)) = (parent, List.toArray(children)) ) ); - (stableInfos, stableMetadata, stableChildrens) + let stableTimers = Iter.toArray( + Iter.filter( + tree.entries(), + func (info) = Option.isSome(timers.get(info.id)) + )); + (stableInfos, stableMetadata, stableChildren, stableTimers) }; public func unshare(stableInfos: [CanisterInfo], stableMetadata: [(Principal, (Int, Bool))], stableChildrens : [(Principal, [Principal])]) { diff --git a/e2e/assets/playground_backend/wasm-utils.wasm b/e2e/assets/playground_backend/wasm-utils.wasm index b5f605eacac7397e1672650ead0c933ce6e06779..30de263cf5f8ad6a8985a0f158aa1c59eac01fa5 100644 GIT binary patch literal 1217357 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

>yM>+m6nIcf8bNjE;N=xOsx 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

@#j^OTUB_8+csHxr6X;zGS1<$y2 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%0A!%(>ceBL`e%+y}eIJ+SJy3Gm^^z5c4k-Mrkm zmYoY;;e>p~FdW-5I=>&xh|YikKkfkTwDsPlbhnCGDq2`UlC;R)>o z2+5+G-G$tQ*i>~+EbXlDpuvHznPSJ@8BE<4+@z;n!Q}11jd~&|pJN-)2FcJ+#gi}9 z@iPg0}MS`L0+BHRbad(jTgcS}mz@DP7P{|H4ifjV>R){es z7};kW#$|gh`Ya!u5;f=M!CKYlDVDl)g%GY*CmNTQG>WkyH^0*Qw9~APJO+Q5v9)Bw zn#BWd5d1?2zr6xIjrKB?7{sg+PsZo|hj$FIPM>T|)(VmhYa@8ArAMY;5XS_HUG=c6 zl44kY{~Zsj)2AN8GA4U9ieP|l%FRIIkN27#go`=KDiPjN|7Ad9RE1dfSBSw{TvtYi zL^>~10yF9=RY3v2mddd3R3&L#V%NX8CGhUzcLkdsW&!j7`7*|oLhI3CN}t1Wmw4uVw*rCpPT zj0+>CsylpiHeoj$&c*PA`Kj|?Fw>-Rr?*|#MJu!>5yAnRhEC9zh4GSkT*J&S*{GQL zwV)K!y_Rf4x!hY@w4LVO_NpqO8;bNgHit< zr6|cGdEUQ)k~}I->GUSRu}u;-bpr#B9r=rq8fwStC+GGw$`NE74f%cR)3Q-n2q_ik zm-_EU5_1Wb%-AdX5kZKHJ7fx5Mk3cgqe5)nYy?FfT()vt{!ZRw#SPWNWKnEQ}A5q0VL7bR!Zr>$I)tLJ`ZMt zfA-8Bdjg%kbn({q;HRIt<5qjcafR1U6|caV*B>ihdH#fZw%))sxZZ?xW2+=K)~Uq3 zHF@LoUvyDZqXz9TZ-;YW&80ONtcIL+nJ8TGBZL^z1Yrx)>9RUC8+`ht@3QOEPoDH$ zrcZ|V&afv(=bjKNIFsHH7?#ljk-u#y;b;3vJU+5CNky-lBlSh&UG zq+;1%q9pmcO_j)+%$Jxy6(jm=ei1th9*H$00}DAF`D>6;7<6!qxI=wRcEAS(ydL-< zQts_;?6UZqW$ZhHXU^ZDI0cf2XhNPo@5kHE+8XIcOXBb_S=;8Z^c9s?n2YeFq%)P86>We8-DdaxU0&(Y-#vr$wB% z+nikLig6>HW5}!ky$O`+ExwL)m{}0;C#sM#y!!?`kmMlozpLlUN7kvPp?IOg>U=|twF_ zM59>?+?#Pb#pQRKPI;qUsV~#8tQZllF7d!t2x6)qnMqO=bQBSbi-{ysMHg5x=&>xL zP4h_dOEMxQeKE`=z~kv9-SZ2_=1Ap8^6zBt0jz}r-5GWU|2Bk<7a4!8tZGTd*z`b% z&HA-(QyZFWOgC)4B2XWki7#Bd!z8D3ku(l-(XH_%QbJiS%@JSX;>A1M1Np#OmEgOw zZr8W=j7|I)fQ6CV@&CEqdtTuXm`it5*2%{{d1A@}_XyHvO z=Bgz!ZlCLYE@7|BwOeo213cSQIZmLr#wky0#ji_C@ayXyzb=I=GlxSURhV|r>Sf3t zXcec+FzNx?bqIBj<_Uz-qOf|LO`6HYGmCp+X!t0f22_?+GtYzZV6q=@ONQ zWXQ~OEN871k?KbNiW-iS+ifmn)GS zYv1x4j`cYC*-(c4yM-k*mFS;YZYN=h`Kfj6HFP4(KMTE3U|q3A8)4`F9iyI&UX0qb z80Kdk4zT%P9?j+o4BTha1H6csN#a$v*OlH63A~+8E8JemSJ|5&pnmsqU7Cf6(X&*2 z=ugAs|EOD+(M!bdoGbq3s?=M%JZ!p2#-%HM*JY82*zfVz))(SG}`Lu}8>1 z<8*v=3ojVw3m>1?X@=~qHO*qi7czC1&1T&FI|{i(bVEKLX-`ubY+5>FdZvTYp^8|HoFjdG#{Ln)#PuTtFa~Xj6A<5Vn&1M3&DYF~T?#kHqmScP0 z6_4!{oqc!4#&I+!8q?aw)_n9iZezfwr8+|V(rkoc>~pSJkqLri!EbzyHKRDGMa+Wp zzes{2>Nr>=nMCRCdBWgg@N%$#_FrzEH>^0%d|7dxH)@_YUe!DkJ{0i=_qncRo;zdP zTaL}o^A(J3`8;3k*e)~A-D6vIo?#m7Mlexw#0s*;uMa&nO^Eq^2^!85KcH_L^Qu2u zD-BfoHOK|4$3!8f{6_yQZw|yJL57?G#%?w`5!*$^2=&GJ@l)73pkLr*3TJ(-?1w~x zjeI!!8m@cGU;kx{bW99F(d4%|0kcFi?nG4UcJ~|M`NndTZu!E0j=3*7IWVQj`CMgp zdl;nL%gB^UiL2F9%m=$^H9_>N(R^D@ zgdRe%W9T#SkVRRut2boEgXQDe{#YPtGt`C@jpdKd=iBa@8op+IpjbC$P=yx%Szv{} z>VNnw4`AhpNAVCp`1{uR!5g=aAADu|`N6KG#SadlBmCf{Il&JGFin1NSe)bsi8ApB zb+km zKT`3u*wW-K!91|*Wn7J{+2MjpH#^E!Ob`%#5Q|mu5hN3=T6?CU0~Lh3!fi+@)EKn9 z4`*2&9++VL>}HT!dt;Hg*s8vpMLd|Z+`0K zS3mcNBI(b*_?u7s?(<*y+?z@gE)Cxv?uQnR^Vlab z9M{SJ7?-*-$l%Uwqr7g44`H&P58z!Vt)?_$Ajx>gHX_7|V*U*>GH*0f3u*(lG*s4A zHe%u0mVF@zpl-o&2GgJ|0p=LwEz#b&y`M61sY_OT3ep(oRAWY6YWPo`UsWf^7oIQPx)7}=D8(%UFMbIfv$ zK6xygae1tQOci8&nxO(drCW=S*)f`-@K*b1<|_j;Y+t z+$iJVgL*bYQ9V)(&*Yqe5#~{8%P;*-nf>$=Y2$^XV%T?MJ=KO|bhb*9x(#m~uciY< z^i_8^X(GqqHUVNo5q=NH(IiXYg|p3vvMsuE!5EZD42QP|Af383EwiQRmCTm1Y1k6c ziC9h@)6U=pE-N|23X$m%2FRm$Du6k7Sm35I2Db)IG{w+iEINEgy3y3Eq9VF3+^Dhh zTeVoaiirLY{n$pX+@)Lhn(-6k7{ z83<3NlVV5~3h%AQp0GI~)6M|%C(MsUbTHIanCljmNjy!Grb7d%i$mX(jwWBW%Ot^& z&DmsuC}7FR^4?WPgz=4FUXF;+`8~_H5tRescKKo;ei*$5Arf4Nh=L1~v_pKw$-^1W z?EwxjGR8QRPD-wpT9RFb%9XAb`N&?x4@pv^F_9nqWQoW&5~Sm7NphOmjrF5UhP`ud z&q1XlM#P{3XEEZLIwc7tO7x!#9%Ujh_K?luAHDpOH{C_OZtrw~-}`d3;iAB!7fgii{@l!PpaRbBNgIz1(0M9>>!1 zqqc}R*0JB{z7mWBLw5MW1kjL{;CmV4^j!aO z{5o3NF(=H{7crgqGCT>8FHH%tWEoD1+2z=`M8ndh$_PFORS0SSAgr(Wog<##vE)%2 zwA~x)`*x$~>y`gHW=GcibZULc>;&Ov$LwrY2r2uoSui~7$2N>_oS57+#lW~CQBjY} z>pov-Pt&my5)0vd6-clg$t(w$Mw5_27@1(X1IJ?bVsdL|!;GuDK)Dzk;h+a7e*{p@ z%q@i9M;#mCJ$h$f-ro2SgbOH_Jw!v`kclMctm+_cniI8+10}{u->>OmJvatwy?7tz z?a;XF5V3l*CUl_=VrX~7dV?3#faN>L4~7}OV}?7jIB4A%)Rx0x`M_EN!W#3+ zsco%!WwN=}ykN$f^A21=-iGqt6s`#l{mR=Dcb3CUH;JruZ1pS1EBC>*)~jF-Yt4(B zmqT87hE_0#^MPor@D`f_;+9^P@W8&}fXDVS!ZI95$KXe3UU%6HuyZ(SM5Kx^U+0{a zb*6i(Jkx1QF~#HY*aUCr4f3blV`)Mz+M^XO&Io5eIkWbmnQQ5~aKw>Bp};El`m~SD znjPJ)lkv707IJ$;)DbfPin9XflJ$f^YO4ssJwb>NwT8XmY*0g=taM%a#{PmR-wfnw zG(Y;HKZc&&5{asoj6^;k zgpM>nar4HLCd*~V_n9gS?+!72^6seSv`8gX{4n3vahb=$8^NK6fw4T#_cb&n@mg!Zh)(ICE*YS3lvm%ufc1xb8s#MER-T1E%JjiFe#xEiOgUcytH7m^0_T zh45LhVKbazu3?V)Oc*`QbPUw3o}5v7d2pe&uqv;#Kt=Xw`I_wN#7y zB6*fw6+!i9OP@-`omCxb*pF-^m!_CD6;)k<;~AX!Z6P~MaunXwZvA2B!MDKN3fD^> z&%u!S)ef5g8M`RUs)Y@=MiMk;1Ri}3e|~&5x$?(iwYY|Qx1lb(DhOF>&V8&sD$9iE zpbb}mP^W=%6hR`A4rYR?a6`hpgN|tGU`J5s#~MFQ8S{dB+%-e6R`OeF=9fya;CPCf zJb&XQ#QxW_PLa=_<70k7IbP$gLq8WGc9(h0oaC{=1=U?xdBYTWk}otKm1 z31}UteBtF(42@8*7Tb7T@Rr9XZZ&{<0Cr~^1g7e(5<0crdV)B7}a0Vd5!FC;#9&Pu7b2>8ui_V{PI8!K$bkLl|MVj&t z&kqmvg~fjXbkx?#s0y(RnN!-=`qgs3NB)wev!d=HJutp9&<;agasY`$*$EaM)#Bhv(Q(pH&2wi1D@sC=v9 zj}2^z4d@mJGhra6h^FIVCa#NDmObbfggI6ZYChyrw`?Vh*sgE@DsKMBE$Y#N z&|K5`gYq_o^&Dyk)I4HX6ck7lf<-iFn4)_>?1ANdcNTy&JTQMUkKnE_zm43ZEAs?t zrB$Y~SR|mf`NxOrZmYLHY9qI#`Mj&h~Ydq;Sy^_VqJ+y zuvHvsn=7seZAj!fmhTMuNYu5j&adA*nRSHG_KlVnn#$H?cA#H2-vm7WKD_~ zSL2u*N@+J>A^X?_tO%=|LGtJus3Ke+)5mFzh31fsyHp%GReT0#MZmxk5%n*fl81Z# zb&w8b$ZWDK{qrvUCoe8Z|MyQ>{%4n_zkJ%#|KHb^9 z1onN5D=L5b?nD9eS^A7T!|yNmRx;rmwvLaJvYaVHHvxTR_RN zay=U7iIhM2!kPF7d3zD)ESz}pF>Wd(jgJQ&28DurNN13z7eA_i0YRSLWr>fIxowZw zI(z|Bbz*w4(~b-!Z|a5@d8;eZNr_uvT9}{yrZ=uuUbk1!#jd@guHy}KADTXxzuLh} z-a=Y`xl93hv{lo=gY3inz}5;}Zr9Kr@nV@*;Q_>cy42o#o&8!wRFkWT~NkCb*838Ucg7TBt8s z24mEPy0Y6c80yw#8O+dIX{~A*97|Fs{kLQkXqDU_+qqLa;A(dMSH_Vl+ujD{HSX5X1YCpU&|6y$|iUpv-a8%ULkXB5)F^tofaYVM;gRi{k z4YWWrUjO&v)mdcyX7S3WFW9pg7c;_f4x{lr3mvY~O=UjKnUm=0O9o+0n}JnKcYAyX z#u}!^*uiCk$r_= zV`gpwnwhAvI@+-V*$yli9i#+FIc8+2LF|ADIq+s~=fgG|egQ=KfWqIc*ieh^yu

gQTq8R>?k!~-s3VSK` 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%0AI{tjZ{RYs#%zoq3SFU3Jxz-R?CO626(3TZkcC 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 literal 582171 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 { pub mode: InstallMode, pub canister_id: Principal, } +#[derive(CandidType)] +struct InstallConfig<'a> { + profiling: bool, + is_whitelisted: bool, + origin: Origin<'a>, +} +#[derive(CandidType)] +struct Origin<'a> { + origin: &'a str, + tags: &'a [&'a str], +} +impl<'a> Origin<'a> { + fn new() -> Self { + Self { + origin: "dfx", + tags: &[], + } + } +} #[context("Failed to reserve canister '{}'.", canister_name)] pub async fn reserve_canister_with_playground( @@ -67,9 +88,13 @@ pub async fn reserve_canister_with_playground( } else { bail!("Trying to reserve canister with playground on non-playground network.") }; + if ci_info::is_ci() && playground_canister == MAINNET_MOTOKO_PLAYGROUND_CANISTER_ID { + bail!("Cannot reserve playground canister in CI, please run `dfx start` to use the local replica.") + } + let mut canister_id_store = env.get_canister_id_store()?; let (timestamp, nonce) = create_nonce(); - let get_can_arg = Encode!(&GetCanisterIdArgs { timestamp, nonce })?; + let get_can_arg = Encode!(&GetCanisterIdArgs { timestamp, nonce }, &Origin::new())?; let result = agent .update(&playground_canister, "getCanisterId") .with_arg(get_can_arg) @@ -148,7 +173,12 @@ pub async fn playground_install_code( mode, canister_id: canister_info.id, }; - let encoded_arg = encode_args((canister_info, install_arg, false, is_asset_canister))?; + let install_config = InstallConfig { + profiling: false, + is_whitelisted: is_asset_canister, + origin: Origin::new(), + }; + let encoded_arg = encode_args((canister_info, install_arg, install_config))?; let result = agent .update(&playground_canister, "installCode") .with_arg(encoded_arg.as_slice()) From 1509bc5bdc7ea23faab834176357059ddd8a563e Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Fri, 15 Sep 2023 15:51:48 -0700 Subject: [PATCH 02/29] fix: add icp0-api.io to default CSP; default to allow raw access (#3369) 1. Make redirects from raw to non-raw opt-in, rather than opt-out. The default allow_raw_access setting for assets is now true, rather than false. This is in part because webviews on iOS and Android don't handle service workers very well. 2. Added https://icp-api.io/ to the default Content-Security-Policy header. Cherry-picked from from https://github.com/dfinity/sdk/pull/3337 (release-0.15.0 branch) --- CHANGELOG.md | 19 ++++++++-- e2e/tests-dfx/assetscanister.bash | 34 +++++++++--------- .../frontend/ic-asset/src/asset/config.rs | 6 ++-- .../ic-certified-assets/src/state_machine.rs | 2 +- .../frontend/ic-certified-assets/src/tests.rs | 8 +++-- .../assets/.ic-assets.json5 | 7 ++-- .../src/.ic-assets.json5 | 7 ++-- src/distributed/assetstorage.wasm.gz | Bin 390783 -> 390790 bytes 8 files changed, 52 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9a15c9a82..27ee506d80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,7 +66,8 @@ This allows the verifying side to try to transform the response such that it mat For example, if only the encoding `gzip` is requested but the `identity` encoding is certified, the `gzip` encoding is returned with the certificate for the `identity` encoding. The verifying side can then unzip the response and will have a valid certificate for the `identity` response. -- Module hash: cd3e7fa2b826f84cdd107eef28633b0c669b4687ae1598dd854828e82d2e4652 +- Module hash: baf9bcab2ebc2883f850b965af658e66725087933df012ebd35c03929c39efe3 +- https://github.com/dfinity/sdk/pull/3369 - https://github.com/dfinity/sdk/pull/3298 - https://github.com/dfinity/sdk/pull/3281 @@ -80,6 +81,18 @@ The `use-old-metering` flag enables old metering in replica. The new metering is The flag is temporary and will be removed in a few months. +### fix: added https://icp-api.io to the default Content-Security-Policy header + +Existing projects will need to change this value in .ic-assets.json or .ic-assets.json5 to include https://icp-api.io + +All projects will need to redeploy. + +### fix: access to raw assets is now enabled by default + +The default value for `allow_raw_access` is now `true`. This means that by default, the frontend canister will no longer restrict the access of traffic to the `.raw.icp0.io` domain, and will no longer automatically redirect all requests to the certified domain (`.icp0.io`), unless configured explicitly. + +Note that existing projects that specify `"allow_raw_access": false` in .ic-assets.json5 will need to change or remove this value manually in order to allow raw access. + ### feat!: Removed dfx nns and dfx sns commands Both have now been turned into the dfx extensions. In order to obtain them, please run `dfx extension install nns` and `dfx extension install sns` respectively. After the installation, you can use them as you did before: `dfx nns ...`, and `dfx sns ...`. @@ -166,7 +179,9 @@ Updated Motoko to [0.9.7](https://github.com/dfinity/motoko/releases/tag/0.9.7) ### Frontend canister -- Module hash: 88d1e5795d29debc1ff56fa0696dcb3adfa67f82fe2739d1aa644263838174b9 +- Module hash: e20be8df2c392937a6ae0f70d20ff23b75e8c71d9085a8b8bb438b8c2d4eafe5 +- https://github.com/dfinity/sdk/pull/3337 +- https://github.com/dfinity/sdk/pull/3298 - https://github.com/dfinity/sdk/pull/3256 - https://github.com/dfinity/sdk/pull/3252 - https://github.com/dfinity/sdk/pull/3249 diff --git a/e2e/tests-dfx/assetscanister.bash b/e2e/tests-dfx/assetscanister.bash index 8207eac768..10152e960f 100644 --- a/e2e/tests-dfx/assetscanister.bash +++ b/e2e/tests-dfx/assetscanister.bash @@ -134,14 +134,14 @@ check_permission_failure() { dfx identity get-principal --identity prepare dfx canister call e2e_project_frontend list_permitted '(record { permission = variant { Commit }; })' assert_command dfx deploy e2e_project_frontend --by-proposal --identity prepare - assert_contains "Proposed commit of batch 2 with evidence 4301263f1fcc0d19ef92cfb6774c4da92bf1a9d2002a293a9d95d97819c02958. Either commit it by proposal, or delete it." + assert_contains "Proposed commit of batch 2 with evidence 164fcc4d933ff9992ab6ab909a4bf350010fa0f4a3e1e247bfc679d3f45254e1. Either commit it by proposal, or delete it." assert_command_fail dfx deploy e2e_project_frontend --by-proposal --identity prepare assert_contains "Batch 2 is already proposed. Delete or execute it to propose another." assert_command dfx deploy e2e_project_frontend --compute-evidence --identity anonymous # shellcheck disable=SC2154 - assert_eq "4301263f1fcc0d19ef92cfb6774c4da92bf1a9d2002a293a9d95d97819c02958" "$stdout" + assert_eq "164fcc4d933ff9992ab6ab909a4bf350010fa0f4a3e1e247bfc679d3f45254e1" "$stdout" ID=$(dfx canister id e2e_project_frontend) PORT=$(get_webserver_port) @@ -161,9 +161,9 @@ check_permission_failure() { assert_command_fail dfx canister call e2e_project_frontend commit_proposed_batch "$wrong_commit_args" --identity commit assert_match "batch computed evidence .* does not match presented evidence" - commit_args='(record { batch_id = 2; evidence = blob "\43\01\26\3f\1f\cc\0d\19\ef\92\cf\b6\77\4c\4d\a9\2b\f1\a9\d2\00\2a\29\3a\9d\95\d9\78\19\c0\29\58" } )' + commit_args='(record { batch_id = 2; evidence = blob "\16\4f\cc\4d\93\3f\f9\99\2a\b6\ab\90\9a\4b\f3\50\01\0f\a0\f4\a3\e1\e2\47\bf\c6\79\d3\f4\52\54\e1" } )' assert_command dfx canister call e2e_project_frontend validate_commit_proposed_batch "$commit_args" --identity commit - assert_contains "commit proposed batch 2 with evidence 4301" + assert_contains "commit proposed batch 2 with evidence 164f" assert_command dfx canister call e2e_project_frontend commit_proposed_batch "$commit_args" --identity commit assert_eq "()" @@ -213,11 +213,11 @@ check_permission_failure() { dfx identity get-principal --identity prepare dfx canister call e2e_project_frontend list_permitted '(record { permission = variant { Commit }; })' assert_command dfx deploy e2e_project_frontend --by-proposal --identity prepare - assert_contains "Proposed commit of batch 2 with evidence 1b45c8b1d0deec88ac032590e0f1cd9ab407f796e827aac880f4ffb035fdc200. Either commit it by proposal, or delete it." + assert_contains "Proposed commit of batch 2 with evidence 9b72eee7f0d7af2a9b41233c341b1caa0c905ef91405f5f513ffb58f68afee5b. Either commit it by proposal, or delete it." assert_command dfx deploy e2e_project_frontend --compute-evidence --identity anonymous # shellcheck disable=SC2154 - assert_eq "1b45c8b1d0deec88ac032590e0f1cd9ab407f796e827aac880f4ffb035fdc200" "$stdout" + assert_eq "9b72eee7f0d7af2a9b41233c341b1caa0c905ef91405f5f513ffb58f68afee5b" "$stdout" ID=$(dfx canister id e2e_project_frontend) PORT=$(get_webserver_port) @@ -225,9 +225,9 @@ check_permission_failure() { assert_command_fail curl --fail -vv http://localhost:"$PORT"/sample-asset.txt?canisterId="$ID" assert_contains "The requested URL returned error: 404" - commit_args='(record { batch_id = 2; evidence = blob "\1b\45\c8\b1\d0\de\ec\88\ac\03\25\90\e0\f1\cd\9a\b4\07\f7\96\e8\27\aa\c8\80\f4\ff\b0\35\fd\c2\00" } )' + commit_args='(record { batch_id = 2; evidence = blob "\9b\72\ee\e7\f0\d7\af\2a\9b\41\23\3c\34\1b\1c\aa\0c\90\5e\f9\14\05\f5\f5\13\ff\b5\8f\68\af\ee\5b" } )' assert_command dfx canister call e2e_project_frontend validate_commit_proposed_batch "$commit_args" --identity commit - assert_contains "commit proposed batch 2 with evidence 1b45c8b1d0deec88ac032590e0f1cd9ab407f796e827aac880f4ffb035fdc200" + assert_contains "commit proposed batch 2 with evidence 9b72eee7f0d7af2a9b41233c341b1caa0c905ef91405f5f513ffb58f68afee5b" assert_command dfx canister call e2e_project_frontend commit_proposed_batch "$commit_args" --identity commit assert_eq "()" @@ -1398,20 +1398,20 @@ CHERRIES" "$stdout" "cache": { "max_age": 2000 }, - "allow_raw_access": false + "allow_raw_access": true }' assert_match 'WARN: 4 unmatched configurations in .*/src/e2e_project_frontend/assets/somedir/.ic-assets.json config file:' assert_contains 'WARN: { "match": "nevermatchme", "headers": {}, "ignore": false, - "allow_raw_access": false + "allow_raw_access": true } WARN: { "match": "nevermatchmetoo", "headers": {}, "ignore": false, - "allow_raw_access": false + "allow_raw_access": true } WARN: { "match": "non-matcher", @@ -1419,7 +1419,7 @@ WARN: { "x-header": "x-value" }, "ignore": false, - "allow_raw_access": false + "allow_raw_access": true }' # splitting this up into two checks, because the order is different on macos vs ubuntu assert_contains 'WARN: { @@ -1428,7 +1428,7 @@ WARN: { "x-header": "x-value" }, "ignore": false, - "allow_raw_access": false + "allow_raw_access": true }' } @@ -1456,7 +1456,7 @@ WARN: { record { headers = opt vec { record { "x-key"; "x-value" } }; is_aliased = opt true; - allow_raw_access = opt false; + allow_raw_access = opt true; max_age = opt (2_000 : nat64); }, )' @@ -1476,7 +1476,7 @@ WARN: { record { headers = opt vec { record { "x-key"; "x-value" } }; is_aliased = opt true; - allow_raw_access = opt false; + allow_raw_access = opt true; max_age = opt (5 : nat64); }, )' @@ -1489,7 +1489,7 @@ WARN: { record { headers = opt vec { record { "new-key"; "new-value" } }; is_aliased = opt true; - allow_raw_access = opt false; + allow_raw_access = opt true; max_age = opt (5 : nat64); }, )' @@ -1585,7 +1585,7 @@ WARN: { record { headers = null; is_aliased = null; - allow_raw_access = opt false; + allow_raw_access = opt true; max_age = null; }, )' diff --git a/src/canisters/frontend/ic-asset/src/asset/config.rs b/src/canisters/frontend/ic-asset/src/asset/config.rs index 19b0dbace4..68a883dde3 100644 --- a/src/canisters/frontend/ic-asset/src/asset/config.rs +++ b/src/canisters/frontend/ic-asset/src/asset/config.rs @@ -23,7 +23,7 @@ pub struct AssetConfig { pub(crate) headers: Option, pub(crate) ignore: Option, pub(crate) enable_aliasing: Option, - #[derivative(Default(value = "Some(false)"))] + #[derivative(Default(value = "Some(true)"))] pub(crate) allow_raw_access: Option, } @@ -35,7 +35,7 @@ pub(crate) struct CacheConfig { } fn default_raw_access() -> Option { - Some(false) + Some(true) } /// A single configuration object, from `.ic-assets.json` config file @@ -931,7 +931,7 @@ mod with_tempdir { .get_asset_config(assets_dir.join("index.html").as_path()) .unwrap(), AssetConfig { - allow_raw_access: Some(false), + allow_raw_access: Some(true), ..Default::default() }, ); diff --git a/src/canisters/frontend/ic-certified-assets/src/state_machine.rs b/src/canisters/frontend/ic-certified-assets/src/state_machine.rs index 01a9b3f697..4bcc82b90a 100644 --- a/src/canisters/frontend/ic-certified-assets/src/state_machine.rs +++ b/src/canisters/frontend/ic-certified-assets/src/state_machine.rs @@ -243,7 +243,7 @@ pub struct StableState { impl Asset { fn allow_raw_access(&self) -> bool { - self.allow_raw_access.unwrap_or(false) + self.allow_raw_access.unwrap_or(true) } fn update_ic_certificate_expressions(&mut self) { diff --git a/src/canisters/frontend/ic-certified-assets/src/tests.rs b/src/canisters/frontend/ic-certified-assets/src/tests.rs index 6e1f5e4e07..3afe42767f 100644 --- a/src/canisters/frontend/ic-certified-assets/src/tests.rs +++ b/src/canisters/frontend/ic-certified-assets/src/tests.rs @@ -1601,7 +1601,9 @@ mod allow_raw_access { "https://a-b-c.ic0.app/page" ); - state.create_test_asset(AssetBuilder::new("/page2.html", "text/html")); + state.create_test_asset( + AssetBuilder::new("/page2.html", "text/html").with_allow_raw_access(Some(false)), + ); let response = state.fake_http_request("a-b-c.raw.icp0.io", "/page2"); dbg!(&response); assert_eq!(response.status_code, 308); @@ -1610,7 +1612,9 @@ mod allow_raw_access { "https://a-b-c.icp0.io/page2" ); - state.create_test_asset(AssetBuilder::new("/index.html", "text/html")); + state.create_test_asset( + AssetBuilder::new("/index.html", "text/html").with_allow_raw_access(Some(false)), + ); let response = state.fake_http_request("a-b-c.raw.icp0.io", "/"); dbg!(&response); assert_eq!(response.status_code, 308); diff --git a/src/dfx/assets/new_project_node_files/src/__project_name___frontend/assets/.ic-assets.json5 b/src/dfx/assets/new_project_node_files/src/__project_name___frontend/assets/.ic-assets.json5 index 8dc76d1ee6..ccdea94aa1 100644 --- a/src/dfx/assets/new_project_node_files/src/__project_name___frontend/assets/.ic-assets.json5 +++ b/src/dfx/assets/new_project_node_files/src/__project_name___frontend/assets/.ic-assets.json5 @@ -24,7 +24,7 @@ // See: https://github.com/WebAssembly/content-security-policy/blob/main/proposals/CSP.md. // - We added img-src data: because data: images are used often. // - frame-ancestors: none mitigates clickjacking attacks. See https://owasp.org/www-community/attacks/Clickjacking. - "Content-Security-Policy": "default-src 'self';script-src 'self' 'unsafe-eval';connect-src 'self' https://icp0.io https://*.icp0.io;img-src 'self' data:;style-src * 'unsafe-inline';style-src-elem * 'unsafe-inline';font-src *;object-src 'none';base-uri 'self';frame-ancestors 'none';form-action 'self';upgrade-insecure-requests;", + "Content-Security-Policy": "default-src 'self';script-src 'self' 'unsafe-eval';connect-src 'self' https://icp0.io https://*.icp0.io https://icp-api.io;img-src 'self' data:;style-src * 'unsafe-inline';style-src-elem * 'unsafe-inline';font-src *;object-src 'none';base-uri 'self';frame-ancestors 'none';form-action 'self';upgrade-insecure-requests;", // Security: The permissions policy disables all features for security reasons. If your site needs such permissions, activate them. // To configure permissions go here https://www.permissionspolicy.com/ @@ -50,7 +50,8 @@ // See: https://owasp.org/www-community/attacks/xss/ "X-XSS-Protection": "1; mode=block" }, - // redirect all requests from .raw.icp0.io to .icp0.io (this redirection is the default) - "allow_raw_access": false + // Set the allow_raw_access field to false to redirect all requests from .raw.icp0.io to .icp0.io + // The default behavior is to allow raw access. + // "allow_raw_access": true }, ] diff --git a/src/dfx/assets/new_project_node_files/src/__project_name___frontend/src/.ic-assets.json5 b/src/dfx/assets/new_project_node_files/src/__project_name___frontend/src/.ic-assets.json5 index 8dc76d1ee6..ccdea94aa1 100644 --- a/src/dfx/assets/new_project_node_files/src/__project_name___frontend/src/.ic-assets.json5 +++ b/src/dfx/assets/new_project_node_files/src/__project_name___frontend/src/.ic-assets.json5 @@ -24,7 +24,7 @@ // See: https://github.com/WebAssembly/content-security-policy/blob/main/proposals/CSP.md. // - We added img-src data: because data: images are used often. // - frame-ancestors: none mitigates clickjacking attacks. See https://owasp.org/www-community/attacks/Clickjacking. - "Content-Security-Policy": "default-src 'self';script-src 'self' 'unsafe-eval';connect-src 'self' https://icp0.io https://*.icp0.io;img-src 'self' data:;style-src * 'unsafe-inline';style-src-elem * 'unsafe-inline';font-src *;object-src 'none';base-uri 'self';frame-ancestors 'none';form-action 'self';upgrade-insecure-requests;", + "Content-Security-Policy": "default-src 'self';script-src 'self' 'unsafe-eval';connect-src 'self' https://icp0.io https://*.icp0.io https://icp-api.io;img-src 'self' data:;style-src * 'unsafe-inline';style-src-elem * 'unsafe-inline';font-src *;object-src 'none';base-uri 'self';frame-ancestors 'none';form-action 'self';upgrade-insecure-requests;", // Security: The permissions policy disables all features for security reasons. If your site needs such permissions, activate them. // To configure permissions go here https://www.permissionspolicy.com/ @@ -50,7 +50,8 @@ // See: https://owasp.org/www-community/attacks/xss/ "X-XSS-Protection": "1; mode=block" }, - // redirect all requests from .raw.icp0.io to .icp0.io (this redirection is the default) - "allow_raw_access": false + // Set the allow_raw_access field to false to redirect all requests from .raw.icp0.io to .icp0.io + // The default behavior is to allow raw access. + // "allow_raw_access": true }, ] diff --git a/src/distributed/assetstorage.wasm.gz b/src/distributed/assetstorage.wasm.gz index f0773cf036d0c67e610d262f206e5a01dd76a4d6..db405979ddfbb75554183454f1056b541a53b0d7 100755 GIT binary patch delta 370501 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 delta 370514 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�iS$HyjkJWD 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 From 20aeeb3bbe375b2ef3ba14d84175f9bc62c17200 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Mon, 18 Sep 2023 09:42:59 -0700 Subject: [PATCH 03/29] chore: promote dfx 0.15.0 (#3371) --- public/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/manifest.json b/public/manifest.json index 1816a4231c..861b203a03 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { "tags": { - "latest": "0.14.4" + "latest": "0.15.0" }, "versions": [ "0.5.0", From ae5b70ea2acf0a02129681db148d301a7d5a43ee Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Tue, 19 Sep 2023 08:37:56 -0700 Subject: [PATCH 04/29] fix: remove duplicate builder.with_arg in wallet call (#3372) When making a call with the wallet, we had two calls to `builder.with_arg()`. With the current agent this (probably) just adds a parameter that will be ignored, but with the 0.27.0 rust agent this causes a `argument is being set more than once` panic. This will fix the e2e failures on https://github.com/dfinity/sdk/pull/3370 --- CHANGELOG.md | 4 ++++ src/dfx/src/commands/canister/call.rs | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27ee506d80..74cea9f8d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,10 @@ Background: In order to determine whether to start a project-specific network or If `dfx start` is starting the shared network from within a dfx project, and that dfx.json contains settings in the `defaults` key for `bitcoin`, `replica`, or `canister_http`, then `dfx start` will warn that it is ignoring those settings. It will also describe how to define equivalent settings in networks.json. +### fix: dfx canister call --wallet no longer passes the parameter twice + +The parameter was erroneously passed twice. Now it is passed only once. + ## Dependencies ### Frontend canister diff --git a/src/dfx/src/commands/canister/call.rs b/src/dfx/src/commands/canister/call.rs index c8bfc11fbe..9f8eb53418 100644 --- a/src/dfx/src/commands/canister/call.rs +++ b/src/dfx/src/commands/canister/call.rs @@ -111,7 +111,6 @@ async fn do_wallet_call(wallet: &WalletCanister<'_>, args: &CallIn) -> DfxResult wallet.update_("wallet_call").with_arg(args64) }; let (result,): (Result,) = builder - .with_arg(args) .build() .call_and_wait() .await From 081c0d4bc9e056c8b64308359b41e7d954b2a8b9 Mon Sep 17 00:00:00 2001 From: Hamish Peebles Date: Tue, 19 Sep 2023 17:36:21 +0100 Subject: [PATCH 05/29] chore: bump `ic-utils`, `ic-agent` and `ic-identity-hsm` to 0.27.0 (#3370) This commit bumps `ic-utils`, `ic-agent` and `ic-identity-hsm` from version 0.26.1 to version 0.27.0. --- Cargo.lock | 57 ++++++++++++++++---------------- Cargo.toml | 18 +++++----- src/dfx-core/src/identity/mod.rs | 4 +++ 3 files changed, 42 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d61ffbbe06..a3d07f31eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -743,16 +743,17 @@ dependencies = [ [[package]] name = "candid" -version = "0.9.1" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df671c37a9c6168db0334f2b289dd4e02dea1bbefe1fb22c5d43b12d865aacd" +checksum = "88f6eec0ae850e006ef0fe306f362884d370624094ec55a6a26de18b251774be" dependencies = [ "anyhow", "arbitrary", "binread", "byteorder", - "candid_derive 0.6.2", + "candid_derive 0.6.3", "codespan-reporting", + "convert_case 0.6.0", "crc32fast", "data-encoding", "fake", @@ -789,9 +790,9 @@ dependencies = [ [[package]] name = "candid_derive" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810b3bd60244f282090652ffc7c30a9d23892e72dfe443e46ee55569044f7dd5" +checksum = "158403ea38fab5904ae47a5d67eb7047650a91681407f5ccbcbcabc4f4ffb489" dependencies = [ "lazy_static", "proc-macro2", @@ -1339,7 +1340,7 @@ dependencies = [ "base64 0.13.1", "byte-unit", "bytes", - "candid 0.9.1", + "candid 0.9.6", "ci_info", "clap", "console", @@ -1361,7 +1362,7 @@ dependencies = [ "ic-agent", "ic-asset", "ic-identity-hsm", - "ic-utils 0.26.1", + "ic-utils 0.27.0", "ic-wasm", "indicatif", "itertools 0.10.5", @@ -1421,7 +1422,7 @@ dependencies = [ "bip32", "byte-unit", "bytes", - "candid 0.9.1", + "candid 0.9.6", "clap", "dialoguer", "directories-next", @@ -1430,7 +1431,7 @@ dependencies = [ "humantime-serde", "ic-agent", "ic-identity-hsm", - "ic-utils 0.26.1", + "ic-utils 0.27.0", "k256 0.11.6", "keyring", "lazy_static", @@ -2385,16 +2386,16 @@ dependencies = [ [[package]] name = "ic-agent" -version = "0.26.1" -source = "git+https://github.com/dfinity/agent-rs.git?rev=4afb978efb2e3fb0bcaa2178571b81bed73ca0ae#4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +version = "0.27.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" dependencies = [ "backoff", - "candid 0.9.1", + "candid 0.9.6", "futures-util", "hex", "http", "http-body", - "ic-certification 0.26.1", + "ic-certification 0.27.0", "ic-verify-bls-signature", "k256 0.13.1", "leb128", @@ -2422,7 +2423,7 @@ name = "ic-asset" version = "0.20.0" dependencies = [ "backoff", - "candid 0.9.1", + "candid 0.9.6", "derivative", "dfx-core", "flate2", @@ -2431,7 +2432,7 @@ dependencies = [ "globset", "hex", "ic-agent", - "ic-utils 0.26.1", + "ic-utils 0.27.0", "itertools 0.10.5", "json5", "mime", @@ -2497,7 +2498,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d4c0b932bf454d5d60e61e13c3c944972fcfd74dc82b9ed5c8b0a75979cf50" dependencies = [ - "candid 0.9.1", + "candid 0.9.6", "ic-cdk-macros", "ic0", "serde", @@ -2510,7 +2511,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4587624e64b8db56224033ee74e5c246d39be15375d03d3df7c117d49d18487" dependencies = [ - "candid 0.9.1", + "candid 0.9.6", "proc-macro2", "quote", "serde", @@ -2530,8 +2531,8 @@ dependencies = [ [[package]] name = "ic-certification" -version = "0.26.1" -source = "git+https://github.com/dfinity/agent-rs.git?rev=4afb978efb2e3fb0bcaa2178571b81bed73ca0ae#4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +version = "0.27.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" dependencies = [ "hex", "serde", @@ -2544,7 +2545,7 @@ name = "ic-certified-assets" version = "0.2.5" dependencies = [ "base64 0.13.1", - "candid 0.9.1", + "candid 0.9.6", "hex", "ic-cdk", "ic-certified-map", @@ -2749,8 +2750,8 @@ dependencies = [ [[package]] name = "ic-identity-hsm" -version = "0.26.1" -source = "git+https://github.com/dfinity/agent-rs.git?rev=4afb978efb2e3fb0bcaa2178571b81bed73ca0ae#4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +version = "0.27.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" dependencies = [ "hex", "ic-agent", @@ -2904,11 +2905,11 @@ dependencies = [ [[package]] name = "ic-utils" -version = "0.26.1" -source = "git+https://github.com/dfinity/agent-rs.git?rev=4afb978efb2e3fb0bcaa2178571b81bed73ca0ae#4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +version = "0.27.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" dependencies = [ "async-trait", - "candid 0.9.1", + "candid 0.9.6", "ic-agent", "once_cell", "semver", @@ -2939,7 +2940,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e360e45c2bf406a867c35ec5daee433f2c3bbbaf013469e6a386a322a9713885" dependencies = [ "anyhow", - "candid 0.9.1", + "candid 0.9.6", "clap", "rustc-demangle", "tempfile", @@ -2975,13 +2976,13 @@ version = "0.20.0" dependencies = [ "anstyle", "anyhow", - "candid 0.9.1", + "candid 0.9.6", "clap", "delay", "humantime", "ic-agent", "ic-asset", - "ic-utils 0.26.1", + "ic-utils 0.27.0", "libflate", "num-traits", "pem 1.1.1", diff --git a/Cargo.toml b/Cargo.toml index 48fda70fd3..efa78f4c66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,11 +19,11 @@ license = "Apache-2.0" [workspace.dependencies] candid = "0.9.0" -ic-agent = "0.26.1" +ic-agent = "0.27.0" ic-asset = { path = "src/canisters/frontend/ic-asset" } ic-cdk = "0.10.0" -ic-identity-hsm = "0.26.1" -ic-utils = "0.26.1" +ic-identity-hsm = "0.27.0" +ic-utils = "0.27.0" aes-gcm = "0.9.4" anyhow = "1.0.56" @@ -69,19 +69,19 @@ url = "2.1.0" walkdir = "2.3.2" [patch.crates-io.ic-agent] -version = "0.26.1" +version = "0.27.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +rev = "eaba57b6cda43abc04581d61d19c1f2809cc6b90" [patch.crates-io.ic-identity-hsm] -version = "0.26.1" +version = "0.27.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +rev = "eaba57b6cda43abc04581d61d19c1f2809cc6b90" [patch.crates-io.ic-utils] -version = "0.26.1" +version = "0.27.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "4afb978efb2e3fb0bcaa2178571b81bed73ca0ae" +rev = "eaba57b6cda43abc04581d61d19c1f2809cc6b90" [profile.release] panic = 'abort' diff --git a/src/dfx-core/src/identity/mod.rs b/src/dfx-core/src/identity/mod.rs index 44cb4b7fe2..a888f42464 100644 --- a/src/dfx-core/src/identity/mod.rs +++ b/src/dfx-core/src/identity/mod.rs @@ -249,6 +249,10 @@ impl ic_agent::Identity for Identity { self.inner.sender() } + fn public_key(&self) -> Option> { + self.inner.public_key() + } + fn sign(&self, content: &EnvelopeContent) -> Result { self.inner.sign(content) } From 9fcf96eeebf15996e6c54b0b19cc62e4ee518517 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:53:07 -0700 Subject: [PATCH 06/29] test: remove references to ic-ref from e2e (#3373) There's no need to specify exclusions for the ic-ref for certain tests, since we aren't running any tests vs ic-ref anymore. --- e2e/tests-dfx/bitcoin.bash | 2 -- e2e/tests-dfx/canister_http.bash | 2 -- e2e/tests-dfx/dfx_install.bash | 2 -- e2e/tests-dfx/leak.bash | 2 -- e2e/tests-dfx/ledger.bash | 3 --- e2e/tests-dfx/new.bash | 2 -- e2e/tests-dfx/signals.bash | 3 --- scripts/workflows/e2e-matrix.py | 12 +----------- 8 files changed, 1 insertion(+), 27 deletions(-) diff --git a/e2e/tests-dfx/bitcoin.bash b/e2e/tests-dfx/bitcoin.bash index 08048c2da5..c8fb8385c0 100644 --- a/e2e/tests-dfx/bitcoin.bash +++ b/e2e/tests-dfx/bitcoin.bash @@ -2,8 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - BITCOIN_CANISTER_ID="g4xu7-jiaaa-aaaan-aaaaq-cai" setup() { diff --git a/e2e/tests-dfx/canister_http.bash b/e2e/tests-dfx/canister_http.bash index 701604bd2a..24e004018a 100644 --- a/e2e/tests-dfx/canister_http.bash +++ b/e2e/tests-dfx/canister_http.bash @@ -2,8 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - setup() { standard_setup } diff --git a/e2e/tests-dfx/dfx_install.bash b/e2e/tests-dfx/dfx_install.bash index 8e8a7e068b..17b1fbab19 100644 --- a/e2e/tests-dfx/dfx_install.bash +++ b/e2e/tests-dfx/dfx_install.bash @@ -2,8 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - setup() { standard_setup } diff --git a/e2e/tests-dfx/leak.bash b/e2e/tests-dfx/leak.bash index b1aa750c23..82a01b516c 100644 --- a/e2e/tests-dfx/leak.bash +++ b/e2e/tests-dfx/leak.bash @@ -2,8 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - setup() { standard_setup diff --git a/e2e/tests-dfx/ledger.bash b/e2e/tests-dfx/ledger.bash index 9b5bc0a4f9..dc225f3085 100644 --- a/e2e/tests-dfx/ledger.bash +++ b/e2e/tests-dfx/ledger.bash @@ -2,9 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - - setup() { standard_setup install_asset ledger diff --git a/e2e/tests-dfx/new.bash b/e2e/tests-dfx/new.bash index cba6a2e066..731d1dbaf0 100644 --- a/e2e/tests-dfx/new.bash +++ b/e2e/tests-dfx/new.bash @@ -2,8 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - setup() { standard_setup } diff --git a/e2e/tests-dfx/signals.bash b/e2e/tests-dfx/signals.bash index 14514c1f64..83251018a1 100644 --- a/e2e/tests-dfx/signals.bash +++ b/e2e/tests-dfx/signals.bash @@ -2,9 +2,6 @@ load ../utils/_ -# All tests in this file are skipped for ic-ref. See scripts/workflows/e2e-matrix.py - - setup() { standard_setup diff --git a/scripts/workflows/e2e-matrix.py b/scripts/workflows/e2e-matrix.py index c8d683bc8c..9ca40dac4d 100755 --- a/scripts/workflows/e2e-matrix.py +++ b/scripts/workflows/e2e-matrix.py @@ -16,17 +16,7 @@ def test_scripts(prefix): matrix = { "test": test, "backend": ["replica"], - "os": ["macos-12", "ubuntu-20.04"], - "exclude": [ - {"backend": "ic-ref", "test": "dfx/bitcoin"}, - {"backend": "ic-ref", "test": "dfx/canister_http"}, - {"backend": "ic-ref", "test": "dfx/dfx_install"}, - {"backend": "ic-ref", "test": "dfx/leak"}, - {"backend": "ic-ref", "test": "dfx/ledger"}, - {"backend": "ic-ref", "test": "dfx/new"}, - {"backend": "ic-ref", "test": "dfx/print"}, - {"backend": "ic-ref", "test": "dfx/signals"}, - ], + "os": ["macos-12", "ubuntu-20.04"] } print(json.dumps(matrix)) From 468bc66dd1108d6417ad3e820eb7f3d1f364b6a2 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Wed, 20 Sep 2023 06:59:47 -0700 Subject: [PATCH 07/29] fix: remove project specific network deprecation warning (#3374) When running `dfx start` with a project-specific network (dfx.json contains a `local` network definition), dfx displays the following warning: ``` WARN: Project-specific networks are deprecated and will be removed after February 2023. ``` It's mid-September, which is not a good look, but also we shouldn't remove project-specific networks until we can support multiple subnet types at the same time. --- CHANGELOG.md | 4 ++++ docs/cli-reference/dfx-start.md | 2 -- src/dfx-core/src/network/provider.rs | 4 ---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74cea9f8d6..a9837c5bf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,6 +61,10 @@ If `dfx start` is starting the shared network from within a dfx project, and tha The parameter was erroneously passed twice. Now it is passed only once. +### fix: Removed deprecation warning about project-specific networks + +Removed this warning: "Project-specific networks are deprecated and will be removed after February 2023." While we may remove project-specific networks in the future, it is not imminent. One key requirement is the ability to run more than one subnet type at one time. + ## Dependencies ### Frontend canister diff --git a/docs/cli-reference/dfx-start.md b/docs/cli-reference/dfx-start.md index ed8875deaa..83a399d66c 100644 --- a/docs/cli-reference/dfx-start.md +++ b/docs/cli-reference/dfx-start.md @@ -84,6 +84,4 @@ dfx stores data for the shared local network in one of the following locations, If dfx.json defines the `local` network, then `dfx start` will use this definition and store network data files under `\/.dfx/network/local`. -Such project-specific networks are deprecated, and we plan to remove support for them after February 2023. We encourage you to remove any definitions of the `local` network from your project's dfx.json file and instead use the default shared local network. - Note that for projects that define the `local` network in dfx.json, you can only run the `dfx start` and `dfx stop` commands from within the project directory structure. For example, if your project name is `hello_world`, your current working directory must be the `hello_world` top-level project directory or one of its subdirectories. diff --git a/src/dfx-core/src/network/provider.rs b/src/dfx-core/src/network/provider.rs index 4f383c468a..7615de99b2 100644 --- a/src/dfx-core/src/network/provider.rs +++ b/src/dfx-core/src/network/provider.rs @@ -353,10 +353,6 @@ fn create_project_network_descriptor( network_name, config.get_path().display(), ); - warn!( - logger, - "Project-specific networks are deprecated and will be removed after February 2023." - ); let data_directory = config.get_temp_path().join("network").join(network_name); let legacy_pid_path = Some(config.get_temp_path().join("pid")); From a742cbaf4b13a42892d6ba74c7126d222973db2d Mon Sep 17 00:00:00 2001 From: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com> Date: Thu, 21 Sep 2023 09:20:36 +0200 Subject: [PATCH 08/29] chore: update replica version to d8795460 (#3376) Updated replica to elected commit d87954601e4b22972899e9957e800406a0a6b929. This incorporates the following executed proposals: - [124538](https://dashboard.internetcomputer.org/proposal/124538) - [124537](https://dashboard.internetcomputer.org/proposal/124537) - [124488](https://dashboard.internetcomputer.org/proposal/124488) - [124487](https://dashboard.internetcomputer.org/proposal/124487) --- CHANGELOG.md | 8 ++ nix/sources.json | 108 +++++++++++++------------- src/dfx/assets/dfx-asset-sources.toml | 74 +++++++++--------- 3 files changed, 99 insertions(+), 91 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9837c5bf9..5e7157bbc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,6 +79,14 @@ The verifying side can then unzip the response and will have a valid certificate - https://github.com/dfinity/sdk/pull/3298 - https://github.com/dfinity/sdk/pull/3281 +Updated replica to elected commit d87954601e4b22972899e9957e800406a0a6b929. +This incorporates the following executed proposals: + +- [124538](https://dashboard.internetcomputer.org/proposal/124538) +- [124537](https://dashboard.internetcomputer.org/proposal/124537) +- [124488](https://dashboard.internetcomputer.org/proposal/124488) +- [124487](https://dashboard.internetcomputer.org/proposal/124487) + # 0.15.0 ## DFX diff --git a/nix/sources.json b/nix/sources.json index 188ec71182..ea7a89ac28 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -15,53 +15,53 @@ "canister_sandbox-x86_64-darwin": { "builtin": false, "description": "The canister_sandbox binary. It must be updated together with the replica binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0fhzrw051y8ac9qsc2n2g3bihfk3vkynrb3p6rysmp3mci8q5vm7", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "1ac28v9bihndgppsm05v044cyyx000sjq3z19s8smf10z2vfhkxj", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/canister_sandbox.gz" }, "canister_sandbox-x86_64-linux": { "builtin": false, "description": "The canister_sandbox binary. It must be updated together with the replica binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "1aym92nlmi4yj18ww27jzkw7d3zpjd8g1dbkgj9dmjwz8m861j5x", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "02kggmpq5yysjjqa0l6vjpmasd7w5jwlwb8r7lksilmfyxsc1s9r", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/canister_sandbox.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/canister_sandbox.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/canister_sandbox.gz" }, "ic-admin-x86_64-darwin": { "builtin": false, "description": "The ic-admin binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0ld705bg4xn82rn6pxhyijqkbkwdx9ylg2l8rwniiaaz19kdyfwp", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "16d54wpv0xk5ydmwca32h9dxz5d26nb978rj8fm48x1g3s2wlskk", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-admin.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-admin.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-admin.gz" }, "ic-admin-x86_64-linux": { "builtin": false, "description": "The ic-admin binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "10qzyza0sp6lijlvkjphambmky8131avjfvsjsa16iqg0lla4fsz", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "0kxfyfc4r9dla4w43pcjdk4iy5pyjv9n4l93ry6pgq0ibrxy0a34", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-admin.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-admin.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-admin.gz" }, "ic-btc-adapter-x86_64-darwin": { "builtin": false, - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "04brndn2f26kkc2sqwc70kv6bprmgs0hcjxg6v3xgbby5d6ym20i", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "14hc00j3skp6rq7ayq1yrs063h6igmvqk8lj4yk5699jnld13pcq", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz" }, "ic-btc-adapter-x86_64-linux": { "builtin": false, - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "1hs03x9vxq00skwd6va604wh994wbc599j6h1yg5ridvivd4x795", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "1pmhk55c0zb1iyxhv3l0dnv42j5ncnm8jkjsrfyzv6rdc33c1y7d", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz" }, "ic-btc-canister": { @@ -74,36 +74,36 @@ }, "ic-https-outcalls-adapter-x86_64-darwin": { "builtin": false, - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "071gln7fwj558xxg0nk1gbkc3py5wych82qw8gm083j4wjhc3lnz", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "0v66mh3hkbix9iy51i4grnpr06k98z702zbkyqzwrcxhcfgjwy4g", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz" }, "ic-https-outcalls-adapter-x86_64-linux": { "builtin": false, - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0szk9cy030f99722sry5lpk0lk3cb05aygmsp2w1dx8y2jy1f801", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "1rxw9airms6ncy37g2wsb5r8m1xsinbd0kwjg0h86phlwmsq3am2", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz" }, "ic-nns-init-x86_64-darwin": { "builtin": false, "description": "The ic-nns-init binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0fwbxw8sxpn6vl9090s880hmwwzqqh4lffglkik0hmgk9g0kgnlq", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "1672xqsys4wbsl4bm5lqwh5q05p9ra7zhnb1kcjvp73q9ncld69z", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-nns-init.gz" }, "ic-nns-init-x86_64-linux": { "builtin": false, "description": "The ic-nns-init binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "11n1fpdsq4f06ws248mx0kjyb5hqgdd043df61bpm8z9fwvlz8gg", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "170a3hdzd51a44dpjmz67qqdkfkp1538f256a6ni193knvlk3lcm", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-nns-init.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-nns-init.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-nns-init.gz" }, "ic-ref-x86_64-darwin": { @@ -126,18 +126,18 @@ }, "ic-starter-x86_64-darwin": { "builtin": false, - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0mg6gxmlqzpvz8w26ay281dh7pcldnmi7v7p1n8cbwapnj6q5igj", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "0b6m3fq8z2x2d3nfa6jmhszjs6pqa24ixx94qn59kras0s9d2fav", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-starter.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-starter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-starter.gz" }, "ic-starter-x86_64-linux": { "builtin": false, - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0r43igqm4xbgwrfxzpy1hfgzm4vh9bz99grgz7hwx7q6z1mmf6wx", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "0achi26937nfhvm55c32md8n3aky06a718j5l2z13bxiycsllw8d", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-starter.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-starter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-starter.gz" }, "icx-proxy-x86_64-darwin": { @@ -187,55 +187,55 @@ "replica-x86_64-darwin": { "builtin": false, "description": "The replica binary. It must be updated together with the canister_sandbox binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "05glmd38bb78lvmlyvwikxwyjlqxcnjrpsjkghf2mxsqndmsramn", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "15lvsh1qgz4wl1ps60bqgq6dm0m9jn99a98aqlna8dw0dxxhppvh", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/replica.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/replica.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/replica.gz" }, "replica-x86_64-linux": { "builtin": false, "description": "The replica binary. It must be updated together with the canister_sandbox binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "1g5xfs2mfvca0havr8c1cmki6fpqq5ajsqacly0dz44pj25xkvgx", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "179fm3jsyripw02ni3s9jv99v5jy2bd9pzjrk4jpms6z93sdya49", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/replica.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/replica.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/replica.gz" }, "sandbox_launcher-x86_64-darwin": { "builtin": false, "description": "The sandbox_launcher binary. It must be updated together with the replica binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0lavk9j6hydas4vs5yay6949z64r93j04sjjgdph7f8llavp8y3k", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "0xn78w0ks2q0s6iiz7bin4r5c5gs79qi8y583iwgy1c1a5b5iq9i", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz" }, "sandbox_launcher-x86_64-linux": { "builtin": false, "description": "The sandbox_launcher binary. It must be updated together with the replica binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "1pqfcyakgd14gj0n125j5ldayg2b6z1x3as0pww12wfdadar6qxw", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "0sh6zk55nsf64irk9g6pdjld8b6nxjz75bks2jdprgv8sb7bbpqp", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/sandbox_launcher.gz" }, "sns-x86_64-darwin": { "builtin": false, "description": "The sns binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "00yxyj52yya5pczxw37x86rsynd5jb95glfh26l8n38rg5fih1q1", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "1ibzmmkfjx4pw0xv12grsdy93040jx7p2dn4bvz7jan4vzm103qy", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/sns.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sns.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/sns.gz" }, "sns-x86_64-linux": { "builtin": false, "description": "The sns binary.", - "rev": "cabe2ae3ca115b1a3f24d75814d4f8e317b2964d", - "sha256": "0l7ibq8px4bqzrj224xy56b9l6rp3rbmfwgd47izmpaa6lg9s1ps", + "rev": "d87954601e4b22972899e9957e800406a0a6b929", + "sha256": "192xj9gmcg1dk5v9smp687hdfp75pnwvqnlz80v2k6b91ajqqhxk", "type": "file", - "url": "https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/sns.gz", + "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sns.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/sns.gz" } } diff --git a/src/dfx/assets/dfx-asset-sources.toml b/src/dfx/assets/dfx-asset-sources.toml index 1b4fce71df..44fb094107 100644 --- a/src/dfx/assets/dfx-asset-sources.toml +++ b/src/dfx/assets/dfx-asset-sources.toml @@ -1,5 +1,5 @@ # generated by write-dfx-asset-sources.sh -replica-rev = 'cabe2ae3ca115b1a3f24d75814d4f8e317b2964d' +replica-rev = 'd87954601e4b22972899e9957e800406a0a6b929' [x86_64-darwin.ic-ref] url = 'https://download.dfinity.systems/ic-ref/ic-ref-0.0.1-a9f73dba-x86_64-darwin.tar.gz' @@ -10,24 +10,24 @@ url = 'https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binari sha256 = '5783bba5021cf43149bc118789cea29f6462fd97dd78bdb776f8782ea7813d27' [x86_64-darwin.ic-admin] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-admin.gz' -sha256 = '973bdf660a5fa9182dcf888a477dea8dcf35b18c1ef66b6c16c876f25601a751' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-admin.gz' +sha256 = '736aca851e2f7444aa4332a3939635a295df5b826228c66bf36576b02f27a599' [x86_64-darwin.ic-btc-adapter] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz' -sha256 = '1188ea4d2b7eadd7c736af4b06817e35df65f6048771ac059bd308276cb37911' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz' +sha256 = '98dd111ab5322553a62792a289777dd1c06180ce3e60af0ecee64e3d24000c92' [x86_64-darwin.ic-https-outcalls-adapter] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz' -sha256 = 'dfd2c1a0e4440e04ea431c0b0499e7c5dfc1e67a615af07a47a548ee8ea52f1c' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz' +sha256 = '8f782e9f63b0b3cc3ff6737d01ce47691a90afcd8fc4507c4c3dae0907acc66c' [x86_64-darwin.ic-nns-init] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz' -sha256 = '98da37c14bf35508669cf4394709c4f8735e214048830412ddc6deae11ef8b3b' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz' +sha256 = '3f9946994d789cbb259b6159f88fcae916800be49896ba08d58b13ed35eee298' [x86_64-darwin.ic-starter] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/ic-starter.gz' -sha256 = 'f2c5828db457f1c5900df7ec13ab6d94dd035b40c22b2338fafb7e4c6b7fe655' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-starter.gz' +sha256 = '5b39d192065ae5998ac524f51e8950f81a2dbf86551ae5ec68a28b8fb01bd52c' [x86_64-darwin.motoko] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-Darwin-x86_64-0.9.8.tar.gz' @@ -35,21 +35,21 @@ sha256 = '27b75c676d294f8b8b5b287ab27b2419799d9523c4d7fdcdd92d29dbe6b57494' # The replica and canister_sandbox binaries must have the same revision. [x86_64-darwin.replica] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/replica.gz' -sha256 = 'b6aaac6bb358f72a1c7c53ea9ba5651d53e9799f916f4feba6e8ac8546abf415' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/replica.gz' +sha256 = '70df0b7b6f8037a42cc50a25959295a982da0c7e7801a36fa09cfc8703d49b96' # The replica and canister_sandbox binaries must have the same revision. [x86_64-darwin.canister_sandbox] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz' -sha256 = 'a7ee82516475dcaa7d3677ac6cfddc633a18d778c20aa671620af95000cf1f3a' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz' +sha256 = 'b24fe8b6f820b8aa914ee10f2c3500a07bcf0801bb80aaef7dcdc2b8d24682a9' [x86_64-darwin.sandbox_launcher] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz' -sha256 = '737874b7a214b9036f7b526a02e44899989f48325ef9a237d1aa7968649a5b51' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz' +sha256 = '31e15856518105ff781ca87814713afa155632b1719d1fa3d1000b3d0147c776' [x86_64-darwin.sns] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-darwin/sns.gz' -sha256 = '0107185d79190d8ba811d0d157d292a559afb341fd0cde3fbb45792f8af4dd03' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sns.gz' +sha256 = '1e0f10eadfc42a79fe5ec436714f978080917cd3f989b03be09774e966ad7fc5' [x86_64-darwin.motoko-base] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-base-library.tar.gz' @@ -68,24 +68,24 @@ url = 'https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binari sha256 = '7a5612a1fb7512d22dcd37627a9d626fbc282b172665a832fe2cc2b243789fa1' [x86_64-linux.ic-admin] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-admin.gz' -sha256 = '5f3ba228050f471394967a3bb9551801f9595755f0cab9a98cd45c0dd4f71f83' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-admin.gz' +sha256 = '6428e07b5e11e0778dcf235162d396fe161fc96c92dd413851b4a54c98f3ae4f' [x86_64-linux.ic-btc-adapter] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz' -sha256 = '259d4eda8ebbc55c9e0fd0c8940a5b9ca4043901466dd3f8d400e0be531f40c3' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz' +sha256 = 'edf8c0c6602d9bfdbdcb5a4e89aa65b64841b66d808e0dbb8f617dc04a99b0de' [x86_64-linux.ic-https-outcalls-adapter] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz' -sha256 = '012017bc141ef516b8b8ba3eaf0a586c4c0ae6a5c5672dc449c981013c4bf36b' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz' +sha256 = 'a2aa8175e5145e832078924fd0968dba878a72599a8b778667d6e89aa34abce7' [x86_64-linux.ic-nns-init] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-nns-init.gz' -sha256 = 'efa14f3777e9a37a5730ae0d025a7b1896e5e504bd22223437c011acdb75c186' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-nns-init.gz' +sha256 = '95d131e9b673a410ad51a60887460977bad9303ee657791b212a94f61b1c0a9c' [x86_64-linux.ic-starter] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/ic-starter.gz' -sha256 = '9d1b576bf8069fcee1f92fbf94fe4a7093fa9f83c1dfdf5de66f7552f18b8364' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-starter.gz' +sha256 = '0d714a35f3b1af11bea045a27094017eaa6151ab62b052ea86ce9e918c889029' [x86_64-linux.motoko] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-Linux-x86_64-0.9.8.tar.gz' @@ -93,21 +93,21 @@ sha256 = '513c437ed23e6a7b40f840469766e7e5b321162ff0259ef164ce60377064ca87' # The replica and canister_sandbox binaries must have the same revision. [x86_64-linux.replica] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/replica.gz' -sha256 = 'fdedd98b909790df80a74c612d55c1f83a13676581a1bc15048a6d578576bdbc' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/replica.gz' +sha256 = '8928dff448dfe87a259959fe9bda125e969dd296498f6805e03766afe5a82e9d' # The replica and canister_sandbox binaries must have the same revision. [x86_64-linux.canister_sandbox] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/canister_sandbox.gz' -sha256 = 'bdc86050459fcbda927c73b5f05093f78f76f8fcf208ce51909ec44aad48d5ab' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/canister_sandbox.gz' +sha256 = '39e9c074f7aed2a8273d192d4eb92cfc34adea95db50a0b094dafb826f7d6f0a' [x86_64-linux.sandbox_launcher] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz' -sha256 = 'bc63935553cd711138bf40abd1c3374b3caf1a2db28860817c24b43795670edf' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz' +sha256 = '17dfb5ced268bf7c9b147aae72beecd62cd4a86cd7bc347324c6695bcafc066a' [x86_64-linux.sns] -url = 'https://download.dfinity.systems/ic/cabe2ae3ca115b1a3f24d75814d4f8e317b2964d/openssl-static-binaries/x86_64-linux/sns.gz' -sha256 = 'fa069d1e354addfae321ed7157571e371b9a9629be132164fe78917e115ef150' +url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sns.gz' +sha256 = 'b3438ca50a69992936409f5abcb9bde55cd7e041e6569d76992d3c565f925da4' [x86_64-linux.motoko-base] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-base-library.tar.gz' From b76a5e6493884d3c16022c5501bc14864f29a638 Mon Sep 17 00:00:00 2001 From: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com> Date: Thu, 21 Sep 2023 14:38:26 -0700 Subject: [PATCH 09/29] chore: update to agent-rs 0.28 (#3378) --- Cargo.lock | 40 ++++++++++++++----- Cargo.toml | 18 ++++----- src/dfx-core/src/identity/mod.rs | 16 +++++++- .../src/commands/canister/request_status.rs | 6 +-- 4 files changed, 56 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a3d07f31eb..cae09245f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1362,7 +1362,7 @@ dependencies = [ "ic-agent", "ic-asset", "ic-identity-hsm", - "ic-utils 0.27.0", + "ic-utils 0.28.0", "ic-wasm", "indicatif", "itertools 0.10.5", @@ -1431,7 +1431,7 @@ dependencies = [ "humantime-serde", "ic-agent", "ic-identity-hsm", - "ic-utils 0.27.0", + "ic-utils 0.28.0", "k256 0.11.6", "keyring", "lazy_static", @@ -2386,8 +2386,8 @@ dependencies = [ [[package]] name = "ic-agent" -version = "0.27.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" +version = "0.28.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" dependencies = [ "backoff", "candid 0.9.6", @@ -2396,6 +2396,7 @@ dependencies = [ "http", "http-body", "ic-certification 0.27.0", + "ic-transport-types", "ic-verify-bls-signature", "k256 0.13.1", "leb128", @@ -2432,7 +2433,7 @@ dependencies = [ "globset", "hex", "ic-agent", - "ic-utils 0.27.0", + "ic-utils 0.28.0", "itertools 0.10.5", "json5", "mime", @@ -2532,7 +2533,8 @@ dependencies = [ [[package]] name = "ic-certification" version = "0.27.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1120544357d4d2f7540dd5290b952c6305afe24c9620d423e2239560adca2535" dependencies = [ "hex", "serde", @@ -2750,8 +2752,8 @@ dependencies = [ [[package]] name = "ic-identity-hsm" -version = "0.27.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" +version = "0.28.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" dependencies = [ "hex", "ic-agent", @@ -2844,6 +2846,22 @@ dependencies = [ "wsl", ] +[[package]] +name = "ic-transport-types" +version = "0.28.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" +dependencies = [ + "candid 0.9.6", + "hex", + "ic-certification 0.27.0", + "leb128", + "serde", + "serde_bytes", + "serde_repr", + "sha2 0.10.7", + "thiserror", +] + [[package]] name = "ic-types" version = "0.8.0" @@ -2905,8 +2923,8 @@ dependencies = [ [[package]] name = "ic-utils" -version = "0.27.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=eaba57b6cda43abc04581d61d19c1f2809cc6b90#eaba57b6cda43abc04581d61d19c1f2809cc6b90" +version = "0.28.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" dependencies = [ "async-trait", "candid 0.9.6", @@ -2982,7 +3000,7 @@ dependencies = [ "humantime", "ic-agent", "ic-asset", - "ic-utils 0.27.0", + "ic-utils 0.28.0", "libflate", "num-traits", "pem 1.1.1", diff --git a/Cargo.toml b/Cargo.toml index efa78f4c66..e0bff1eb37 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,11 +19,11 @@ license = "Apache-2.0" [workspace.dependencies] candid = "0.9.0" -ic-agent = "0.27.0" +ic-agent = "0.28.0" ic-asset = { path = "src/canisters/frontend/ic-asset" } ic-cdk = "0.10.0" -ic-identity-hsm = "0.27.0" -ic-utils = "0.27.0" +ic-identity-hsm = "0.28.0" +ic-utils = "0.28.0" aes-gcm = "0.9.4" anyhow = "1.0.56" @@ -69,19 +69,19 @@ url = "2.1.0" walkdir = "2.3.2" [patch.crates-io.ic-agent] -version = "0.27.0" +version = "0.28.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "eaba57b6cda43abc04581d61d19c1f2809cc6b90" +rev = "9c4db330d96938d95eda69bbf5878db91aae0aa1" [patch.crates-io.ic-identity-hsm] -version = "0.27.0" +version = "0.28.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "eaba57b6cda43abc04581d61d19c1f2809cc6b90" +rev = "9c4db330d96938d95eda69bbf5878db91aae0aa1" [patch.crates-io.ic-utils] -version = "0.27.0" +version = "0.28.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "eaba57b6cda43abc04581d61d19c1f2809cc6b90" +rev = "9c4db330d96938d95eda69bbf5878db91aae0aa1" [profile.release] panic = 'abort' diff --git a/src/dfx-core/src/identity/mod.rs b/src/dfx-core/src/identity/mod.rs index a888f42464..ccee470205 100644 --- a/src/dfx-core/src/identity/mod.rs +++ b/src/dfx-core/src/identity/mod.rs @@ -16,7 +16,9 @@ use crate::identity::identity_file_locations::IdentityFileLocations; use crate::json::{load_json_file, save_json_file}; use candid::Principal; use ic_agent::agent::EnvelopeContent; -use ic_agent::identity::{AnonymousIdentity, BasicIdentity, Secp256k1Identity}; +use ic_agent::identity::{ + AnonymousIdentity, BasicIdentity, Delegation, Secp256k1Identity, SignedDelegation, +}; use ic_agent::Signature; use ic_identity_hsm::HardwareIdentity; pub use identity_manager::{ @@ -253,9 +255,21 @@ impl ic_agent::Identity for Identity { self.inner.public_key() } + fn delegation_chain(&self) -> Vec { + self.inner.delegation_chain() + } + fn sign(&self, content: &EnvelopeContent) -> Result { self.inner.sign(content) } + + fn sign_arbitrary(&self, content: &[u8]) -> Result { + self.inner.sign_arbitrary(content) + } + + fn sign_delegation(&self, content: &Delegation) -> Result { + self.inner.sign_delegation(content) + } } impl AsRef for Identity { diff --git a/src/dfx/src/commands/canister/request_status.rs b/src/dfx/src/commands/canister/request_status.rs index b28f82e064..ba20dcccc6 100644 --- a/src/dfx/src/commands/canister/request_status.rs +++ b/src/dfx/src/commands/canister/request_status.rs @@ -8,7 +8,7 @@ use backoff::backoff::Backoff; use backoff::ExponentialBackoff; use candid::Principal; use clap::Parser; -use ic_agent::agent::{Replied, RequestStatusResponse}; +use ic_agent::agent::RequestStatusResponse; use ic_agent::{AgentError, RequestId}; use std::str::FromStr; @@ -49,7 +49,7 @@ pub async fn exec(env: &dyn Environment, opts: RequestStatusOpts) -> DfxResult { .or_else(|_| canister_id_store.get(callee_canister))?; let mut retry_policy = ExponentialBackoff::default(); - let Replied::CallReplied(blob) = async { + let blob = async { let mut request_accepted = false; loop { match agent @@ -57,7 +57,7 @@ pub async fn exec(env: &dyn Environment, opts: RequestStatusOpts) -> DfxResult { .await .context("Failed to fetch request status.")? { - RequestStatusResponse::Replied { reply } => return Ok(reply), + RequestStatusResponse::Replied(reply) => return Ok(reply.arg), RequestStatusResponse::Rejected(response) => { return Err(DfxError::new(AgentError::ReplicaError(response))) } From 88cae61f2174c1e0032a0440a9f990994f379609 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Thu, 21 Sep 2023 16:13:32 -0700 Subject: [PATCH 10/29] refactor: RemoveIdentityError (#3379) --- .../src/error/identity/create_new_identity.rs | 3 +- src/dfx-core/src/error/identity/mod.rs | 22 +------------ .../src/error/identity/remove_identity.rs | 32 +++++++++++++++++++ src/dfx-core/src/identity/identity_manager.rs | 22 +++++++------ 4 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 src/dfx-core/src/error/identity/remove_identity.rs diff --git a/src/dfx-core/src/error/identity/create_new_identity.rs b/src/dfx-core/src/error/identity/create_new_identity.rs index 1e7076ee0b..b7b454618a 100644 --- a/src/dfx-core/src/error/identity/create_new_identity.rs +++ b/src/dfx-core/src/error/identity/create_new_identity.rs @@ -1,6 +1,7 @@ use crate::error::fs::FsError; use crate::error::identity::convert_mnemonic_to_key::ConvertMnemonicToKeyError; use crate::error::identity::generate_key::GenerateKeyError; +use crate::error::identity::remove_identity::RemoveIdentityError; use crate::error::identity::save_pem::SavePemError; use crate::error::identity::IdentityError; use thiserror::Error; @@ -38,7 +39,7 @@ pub enum CreateNewIdentityError { LoadPemFromFileFailed(IdentityError), #[error("Failed to remove identity: {0}")] - RemoveIdentityFailed(IdentityError), + RemoveIdentityFailed(RemoveIdentityError), #[error("Failed to rename temporary directory to permanent identity directory: {0}")] RenameTemporaryIdentityDirectoryFailed(FsError), diff --git a/src/dfx-core/src/error/identity/mod.rs b/src/dfx-core/src/error/identity/mod.rs index 07231f5291..760d08f8d6 100644 --- a/src/dfx-core/src/error/identity/mod.rs +++ b/src/dfx-core/src/error/identity/mod.rs @@ -5,6 +5,7 @@ pub mod generate_key; pub mod get_legacy_credentials_pem_path; pub mod initialize_identity_manager; pub mod new_identity_manager; +pub mod remove_identity; pub mod rename_identity; pub mod save_pem; pub mod write_pem_to_file; @@ -23,21 +24,9 @@ use thiserror::Error; #[derive(Error, Debug)] pub enum IdentityError { - #[error("Cannot delete the default identity.")] - CannotDeleteDefaultIdentity(), - - #[error("Cannot delete the anonymous identity.")] - CannotDeleteAnonymousIdentity(), - #[error("Failed to decrypt PEM file: {0}")] DecryptPemFileFailed(PathBuf, EncryptionError), - #[error("Failed to display linked wallets: {0}")] - DisplayLinkedWalletsFailed(WalletConfigError), - - #[error("If you want to remove an identity with configured wallets, please use the --drop-wallets flag.")] - DropWalletsFlagRequiredToRemoveIdentityWithWallets(), - #[error("Failed to ensure identity configuration directory exists: {0}")] EnsureIdentityConfigurationDirExistsFailed(FsError), @@ -74,15 +63,6 @@ pub enum IdentityError { #[error("Failed to read pem file: {0}")] ReadPemFileFailed(FsError), - #[error("Failed to remove identity directory: {0}")] - RemoveIdentityDirectoryFailed(FsError), - - #[error("Failed to remove identity from keyring: {0}")] - RemoveIdentityFromKeyringFailed(KeyringError), - - #[error("Failed to remove identity file: {0}")] - RemoveIdentityFileFailed(FsError), - #[error("Failed to rename '{0}' to '{1}' in the global wallet config: {2}")] RenameWalletFailed(Box, Box, WalletConfigError), diff --git a/src/dfx-core/src/error/identity/remove_identity.rs b/src/dfx-core/src/error/identity/remove_identity.rs new file mode 100644 index 0000000000..c4b43d6e08 --- /dev/null +++ b/src/dfx-core/src/error/identity/remove_identity.rs @@ -0,0 +1,32 @@ +use crate::error::fs::FsError; +use crate::error::identity::IdentityError; +use crate::error::keyring::KeyringError; +use crate::error::wallet_config::WalletConfigError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum RemoveIdentityError { + #[error("Cannot delete the anonymous identity.")] + CannotDeleteAnonymousIdentity(), + + #[error("Cannot delete the default identity.")] + CannotDeleteDefaultIdentity(), + + #[error("Failed to display linked wallets: {0}")] + DisplayLinkedWalletsFailed(WalletConfigError), + + #[error("If you want to remove an identity with configured wallets, please use the --drop-wallets flag.")] + DropWalletsFlagRequiredToRemoveIdentityWithWallets(), + + #[error("Failed to remove identity directory: {0}")] + RemoveIdentityDirectoryFailed(FsError), + + #[error("Failed to remove identity file: {0}")] + RemoveIdentityFileFailed(FsError), + + #[error("Failed to remove identity from keyring: {0}")] + RemoveIdentityFromKeyringFailed(KeyringError), + + #[error("Identity must exist: {0}")] + RequireIdentityExistsFailed(IdentityError), +} diff --git a/src/dfx-core/src/identity/identity_manager.rs b/src/dfx-core/src/identity/identity_manager.rs index 8d0e81c318..b4238534d7 100644 --- a/src/dfx-core/src/identity/identity_manager.rs +++ b/src/dfx-core/src/identity/identity_manager.rs @@ -26,6 +26,11 @@ use crate::error::identity::initialize_identity_manager::InitializeIdentityManag }; use crate::error::identity::new_identity_manager::NewIdentityManagerError; use crate::error::identity::new_identity_manager::NewIdentityManagerError::LoadIdentityManagerConfigurationFailed; +use crate::error::identity::remove_identity::RemoveIdentityError; +use crate::error::identity::remove_identity::RemoveIdentityError::{ + DisplayLinkedWalletsFailed, DropWalletsFlagRequiredToRemoveIdentityWithWallets, + RemoveIdentityDirectoryFailed, RemoveIdentityFileFailed, +}; use crate::error::identity::rename_identity::RenameIdentityError; use crate::error::identity::rename_identity::RenameIdentityError::{ GetIdentityConfigFailed, LoadPemFailed, MapWalletsToRenamedIdentityFailed, @@ -33,10 +38,8 @@ use crate::error::identity::rename_identity::RenameIdentityError::{ }; use crate::error::identity::IdentityError; use crate::error::identity::IdentityError::{ - DisplayLinkedWalletsFailed, DropWalletsFlagRequiredToRemoveIdentityWithWallets, EnsureIdentityConfigurationDirExistsFailed, GenerateFreshEncryptionConfigurationFailed, - GetIdentityPrincipalFailed, LoadIdentityConfigurationFailed, RemoveIdentityDirectoryFailed, - RemoveIdentityFileFailed, RemoveIdentityFromKeyringFailed, SaveIdentityConfigurationFailed, + GetIdentityPrincipalFailed, LoadIdentityConfigurationFailed, SaveIdentityConfigurationFailed, }; use crate::error::structured_file::StructuredFileError; use crate::foundation::get_user_home; @@ -478,15 +481,16 @@ impl IdentityManager { name: &str, drop_wallets: bool, display_linked_wallets_to: Option<&Logger>, - ) -> Result<(), IdentityError> { - self.require_identity_exists(log, name)?; + ) -> Result<(), RemoveIdentityError> { + self.require_identity_exists(log, name) + .map_err(RemoveIdentityError::RequireIdentityExistsFailed)?; if name == ANONYMOUS_IDENTITY_NAME { - return Err(IdentityError::CannotDeleteAnonymousIdentity()); + return Err(RemoveIdentityError::CannotDeleteAnonymousIdentity()); } if self.configuration.default == name { - return Err(IdentityError::CannotDeleteDefaultIdentity()); + return Err(RemoveIdentityError::CannotDeleteDefaultIdentity()); } let wallet_config_file = self.get_persistent_wallet_config_file(name); @@ -505,7 +509,7 @@ impl IdentityManager { if let Ok(config) = self.get_identity_config_or_default(name) { if let Some(suffix) = config.keyring_identity_suffix { keyring_mock::delete_pem_from_keyring(&suffix) - .map_err(RemoveIdentityFromKeyringFailed)?; + .map_err(RemoveIdentityError::RemoveIdentityFromKeyringFailed)?; } } remove_identity_file(&self.get_identity_json_path(name))?; @@ -758,7 +762,7 @@ pub(super) fn save_identity_configuration( } /// Removes the file if it exists. -fn remove_identity_file(file: &Path) -> Result<(), IdentityError> { +fn remove_identity_file(file: &Path) -> Result<(), RemoveIdentityError> { if file.exists() { crate::fs::remove_file(file).map_err(RemoveIdentityFileFailed)?; } From bb7652fcc9246a164885258ecfe8179cc2b79ed8 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Fri, 22 Sep 2023 09:11:31 -0700 Subject: [PATCH 11/29] refactor: concrete error type for Identity::new (#3381) Adds concrete error type `NewIdentityError` for `Identity::new()`, and require dependent error types. --- .../src/error/identity/create_new_identity.rs | 3 +- .../src/error/identity/export_identity.rs | 6 ++-- .../get_identity_config_or_default.rs | 8 +++++ .../instantiate_identity_from_name.rs | 15 +++++++++ .../src/error/identity/load_identity.rs | 12 +++++++ src/dfx-core/src/error/identity/load_pem.rs | 12 +++++++ .../src/error/identity/load_pem_from_file.rs | 13 ++++++++ .../src/error/identity/load_pem_identity.rs | 8 +++++ src/dfx-core/src/error/identity/mod.rs | 31 +++++-------------- .../error/identity/new_hardware_identity.rs | 8 +++++ .../src/error/identity/new_identity.rs | 16 ++++++++++ .../src/error/identity/rename_identity.rs | 6 ++-- src/dfx-core/src/identity/identity_manager.rs | 31 +++++++++++++------ src/dfx-core/src/identity/mod.rs | 29 ++++++++++++----- src/dfx-core/src/identity/pem_safekeeping.rs | 17 +++++----- src/dfx/src/commands/canister/create.rs | 2 +- .../src/commands/canister/update_settings.rs | 2 +- 17 files changed, 165 insertions(+), 54 deletions(-) create mode 100644 src/dfx-core/src/error/identity/get_identity_config_or_default.rs create mode 100644 src/dfx-core/src/error/identity/instantiate_identity_from_name.rs create mode 100644 src/dfx-core/src/error/identity/load_identity.rs create mode 100644 src/dfx-core/src/error/identity/load_pem.rs create mode 100644 src/dfx-core/src/error/identity/load_pem_from_file.rs create mode 100644 src/dfx-core/src/error/identity/load_pem_identity.rs create mode 100644 src/dfx-core/src/error/identity/new_hardware_identity.rs create mode 100644 src/dfx-core/src/error/identity/new_identity.rs diff --git a/src/dfx-core/src/error/identity/create_new_identity.rs b/src/dfx-core/src/error/identity/create_new_identity.rs index b7b454618a..0f0739fee4 100644 --- a/src/dfx-core/src/error/identity/create_new_identity.rs +++ b/src/dfx-core/src/error/identity/create_new_identity.rs @@ -1,6 +1,7 @@ use crate::error::fs::FsError; use crate::error::identity::convert_mnemonic_to_key::ConvertMnemonicToKeyError; use crate::error::identity::generate_key::GenerateKeyError; +use crate::error::identity::load_pem_from_file::LoadPemFromFileError; use crate::error::identity::remove_identity::RemoveIdentityError; use crate::error::identity::save_pem::SavePemError; use crate::error::identity::IdentityError; @@ -36,7 +37,7 @@ pub enum CreateNewIdentityError { IdentityAlreadyExists(), #[error("Failed to load pem file: {0}")] - LoadPemFromFileFailed(IdentityError), + LoadPemFromFileFailed(LoadPemFromFileError), #[error("Failed to remove identity: {0}")] RemoveIdentityFailed(RemoveIdentityError), diff --git a/src/dfx-core/src/error/identity/export_identity.rs b/src/dfx-core/src/error/identity/export_identity.rs index ff21d6e6cd..9882ee9e7f 100644 --- a/src/dfx-core/src/error/identity/export_identity.rs +++ b/src/dfx-core/src/error/identity/export_identity.rs @@ -1,3 +1,5 @@ +use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; +use crate::error::identity::load_pem::LoadPemError; use crate::error::identity::IdentityError; use std::string::FromUtf8Error; use thiserror::Error; @@ -5,13 +7,13 @@ use thiserror::Error; #[derive(Error, Debug)] pub enum ExportIdentityError { #[error("Failed to get identity config: {0}")] - GetIdentityConfigFailed(IdentityError), + GetIdentityConfigFailed(GetIdentityConfigOrDefaultError), #[error("The specified identity does not exist: {0}")] IdentityDoesNotExist(IdentityError), #[error("Failed to load pem file: {0}")] - LoadPemFailed(IdentityError), + LoadPemFailed(LoadPemError), #[error("Could not translate pem file to text: {0}")] TranslatePemContentToTextFailed(FromUtf8Error), diff --git a/src/dfx-core/src/error/identity/get_identity_config_or_default.rs b/src/dfx-core/src/error/identity/get_identity_config_or_default.rs new file mode 100644 index 0000000000..d7cd9fe0fc --- /dev/null +++ b/src/dfx-core/src/error/identity/get_identity_config_or_default.rs @@ -0,0 +1,8 @@ +use crate::error::structured_file::StructuredFileError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum GetIdentityConfigOrDefaultError { + #[error("Failed to load configuration for identity '{0}': {1}")] + LoadIdentityConfigurationFailed(String, StructuredFileError), +} diff --git a/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs b/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs new file mode 100644 index 0000000000..139dcae094 --- /dev/null +++ b/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs @@ -0,0 +1,15 @@ +use crate::error::identity::load_identity::LoadIdentityError; +use crate::error::identity::IdentityError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum InstantiateIdentityFromNameError { + #[error("Failed to get principal of identity: {0}")] + GetIdentityPrincipalFailed(String), + + #[error("Failed to load identity: {0}")] + LoadIdentityFailed(LoadIdentityError), + + #[error("Identity must exist: {0}")] + RequireIdentityExistsFailed(IdentityError), +} diff --git a/src/dfx-core/src/error/identity/load_identity.rs b/src/dfx-core/src/error/identity/load_identity.rs new file mode 100644 index 0000000000..b237ed2c96 --- /dev/null +++ b/src/dfx-core/src/error/identity/load_identity.rs @@ -0,0 +1,12 @@ +use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; +use crate::error::identity::new_identity::NewIdentityError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum LoadIdentityError { + #[error("Failed to get identity config: {0}")] + GetIdentityConfigOrDefaultFailed(GetIdentityConfigOrDefaultError), + + #[error("Failed to instantiate identity: {0}")] + NewIdentityFailed(NewIdentityError), +} diff --git a/src/dfx-core/src/error/identity/load_pem.rs b/src/dfx-core/src/error/identity/load_pem.rs new file mode 100644 index 0000000000..5cf73dea45 --- /dev/null +++ b/src/dfx-core/src/error/identity/load_pem.rs @@ -0,0 +1,12 @@ +use crate::error::identity::load_pem_from_file::LoadPemFromFileError; +use crate::error::keyring::KeyringError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum LoadPemError { + #[error("Failed to load PEM file from file : {0}")] + LoadFromFileFailed(LoadPemFromFileError), + + #[error("Failed to load PEM file from keyring for identity '{0}': {1}")] + LoadFromKeyringFailed(Box, KeyringError), +} diff --git a/src/dfx-core/src/error/identity/load_pem_from_file.rs b/src/dfx-core/src/error/identity/load_pem_from_file.rs new file mode 100644 index 0000000000..6fcfa57229 --- /dev/null +++ b/src/dfx-core/src/error/identity/load_pem_from_file.rs @@ -0,0 +1,13 @@ +use crate::error::encryption::EncryptionError; +use crate::error::fs::FsError; +use std::path::PathBuf; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum LoadPemFromFileError { + #[error("Failed to decrypt PEM file: {0}")] + DecryptPemFileFailed(PathBuf, EncryptionError), + + #[error("Failed to read pem file: {0}")] + ReadPemFileFailed(FsError), +} diff --git a/src/dfx-core/src/error/identity/load_pem_identity.rs b/src/dfx-core/src/error/identity/load_pem_identity.rs new file mode 100644 index 0000000000..74033d3afb --- /dev/null +++ b/src/dfx-core/src/error/identity/load_pem_identity.rs @@ -0,0 +1,8 @@ +use ic_agent::identity::PemError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum LoadPemIdentityError { + #[error("Cannot read identity file '{0}': {1:#}")] + ReadIdentityFileFailed(String, Box), +} diff --git a/src/dfx-core/src/error/identity/mod.rs b/src/dfx-core/src/error/identity/mod.rs index 760d08f8d6..346ce8e569 100644 --- a/src/dfx-core/src/error/identity/mod.rs +++ b/src/dfx-core/src/error/identity/mod.rs @@ -2,8 +2,16 @@ pub mod convert_mnemonic_to_key; pub mod create_new_identity; pub mod export_identity; pub mod generate_key; +pub mod get_identity_config_or_default; pub mod get_legacy_credentials_pem_path; pub mod initialize_identity_manager; +pub mod instantiate_identity_from_name; +pub mod load_identity; +pub mod load_pem; +pub mod load_pem_from_file; +pub mod load_pem_identity; +pub mod new_hardware_identity; +pub mod new_identity; pub mod new_identity_manager; pub mod remove_identity; pub mod rename_identity; @@ -13,20 +21,15 @@ pub mod write_pem_to_file; use crate::error::config::ConfigError; use crate::error::encryption::EncryptionError; use crate::error::fs::FsError; -use crate::error::keyring::KeyringError; use crate::error::structured_file::StructuredFileError; use crate::error::wallet_config::WalletConfigError; use ic_agent::export::PrincipalError; use ic_agent::identity::PemError; -use ic_identity_hsm::HardwareIdentityError; use std::path::PathBuf; use thiserror::Error; #[derive(Error, Debug)] pub enum IdentityError { - #[error("Failed to decrypt PEM file: {0}")] - DecryptPemFileFailed(PathBuf, EncryptionError), - #[error("Failed to ensure identity configuration directory exists: {0}")] EnsureIdentityConfigurationDirExistsFailed(FsError), @@ -39,30 +42,12 @@ pub enum IdentityError { #[error("Failed to get shared network data directory: {0}")] GetSharedNetworkDataDirectoryFailed(ConfigError), - #[error("Failed to get principal of identity: {0}")] - GetIdentityPrincipalFailed(String), - #[error("Identity {0} does not exist at '{1}'.")] IdentityDoesNotExist(String, PathBuf), - #[error("Failed to instantiate hardware identity for identity '{0}': {1}.")] - InstantiateHardwareIdentityFailed(String, Box), - - #[error("Failed to load configuration for identity '{0}': {1}")] - LoadIdentityConfigurationFailed(String, StructuredFileError), - - #[error("Failed to load PEM file from keyring for identity '{0}': {1}")] - LoadPemFromKeyringFailed(Box, KeyringError), - #[error("Failed to read principal from id '{0}': {1}")] ParsePrincipalFromIdFailed(String, PrincipalError), - #[error("Cannot read identity file '{0}': {1:#}")] - ReadIdentityFileFailed(String, Box), - - #[error("Failed to read pem file: {0}")] - ReadPemFileFailed(FsError), - #[error("Failed to rename '{0}' to '{1}' in the global wallet config: {2}")] RenameWalletFailed(Box, Box, WalletConfigError), diff --git a/src/dfx-core/src/error/identity/new_hardware_identity.rs b/src/dfx-core/src/error/identity/new_hardware_identity.rs new file mode 100644 index 0000000000..30aefa112e --- /dev/null +++ b/src/dfx-core/src/error/identity/new_hardware_identity.rs @@ -0,0 +1,8 @@ +use ic_identity_hsm::HardwareIdentityError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum NewHardwareIdentityError { + #[error("Failed to instantiate hardware identity for identity '{0}': {1}.")] + InstantiateHardwareIdentityFailed(String, Box), +} diff --git a/src/dfx-core/src/error/identity/new_identity.rs b/src/dfx-core/src/error/identity/new_identity.rs new file mode 100644 index 0000000000..f46c0a65d3 --- /dev/null +++ b/src/dfx-core/src/error/identity/new_identity.rs @@ -0,0 +1,16 @@ +use crate::error::identity::load_pem::LoadPemError; +use crate::error::identity::load_pem_identity::LoadPemIdentityError; +use crate::error::identity::new_hardware_identity::NewHardwareIdentityError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum NewIdentityError { + #[error("Failed to load PEM: {0}")] + LoadPemFailed(LoadPemError), + + #[error("Failed to load PEM identity: {0}")] + LoadPemIdentityFailed(LoadPemIdentityError), + + #[error("Failed to instantiate hardware identity: {0}")] + NewHardwareIdentityFailed(NewHardwareIdentityError), +} diff --git a/src/dfx-core/src/error/identity/rename_identity.rs b/src/dfx-core/src/error/identity/rename_identity.rs index 9c267cabf1..211dbcd7b2 100644 --- a/src/dfx-core/src/error/identity/rename_identity.rs +++ b/src/dfx-core/src/error/identity/rename_identity.rs @@ -1,4 +1,6 @@ use crate::error::fs::FsError; +use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; +use crate::error::identity::load_pem::LoadPemError; use crate::error::identity::save_pem::SavePemError; use crate::error::identity::IdentityError; use crate::error::keyring::KeyringError; @@ -10,7 +12,7 @@ pub enum RenameIdentityError { CannotCreateAnonymousIdentity(), #[error("Failed to get identity config: {0}")] - GetIdentityConfigFailed(IdentityError), + GetIdentityConfigFailed(GetIdentityConfigOrDefaultError), #[error("Identity already exists.")] IdentityAlreadyExists(), @@ -19,7 +21,7 @@ pub enum RenameIdentityError { IdentityDoesNotExist(IdentityError), #[error("Failed to load pem: {0}")] - LoadPemFailed(IdentityError), + LoadPemFailed(LoadPemError), #[error("Failed to map wallets to renamed identity: {0}")] MapWalletsToRenamedIdentityFailed(IdentityError /*MapWalletsToRenamedIdentityError*/), diff --git a/src/dfx-core/src/identity/identity_manager.rs b/src/dfx-core/src/identity/identity_manager.rs index b4238534d7..9a8f7db47e 100644 --- a/src/dfx-core/src/identity/identity_manager.rs +++ b/src/dfx-core/src/identity/identity_manager.rs @@ -17,6 +17,8 @@ use crate::error::identity::export_identity::ExportIdentityError; use crate::error::identity::export_identity::ExportIdentityError::TranslatePemContentToTextFailed; use crate::error::identity::generate_key::GenerateKeyError; use crate::error::identity::generate_key::GenerateKeyError::GenerateFreshSecp256k1KeyFailed; +use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; +use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError::LoadIdentityConfigurationFailed; use crate::error::identity::get_legacy_credentials_pem_path::GetLegacyCredentialsPemPathError; use crate::error::identity::get_legacy_credentials_pem_path::GetLegacyCredentialsPemPathError::GetLegacyPemPathFailed; use crate::error::identity::initialize_identity_manager::InitializeIdentityManagerError; @@ -24,6 +26,11 @@ use crate::error::identity::initialize_identity_manager::InitializeIdentityManag CreateIdentityDirectoryFailed, GenerateKeyFailed, MigrateLegacyIdentityFailed, WritePemToFileFailed, }; +use crate::error::identity::instantiate_identity_from_name::InstantiateIdentityFromNameError; +use crate::error::identity::instantiate_identity_from_name::InstantiateIdentityFromNameError::{ + GetIdentityPrincipalFailed, LoadIdentityFailed, +}; +use crate::error::identity::load_identity::LoadIdentityError; use crate::error::identity::new_identity_manager::NewIdentityManagerError; use crate::error::identity::new_identity_manager::NewIdentityManagerError::LoadIdentityManagerConfigurationFailed; use crate::error::identity::remove_identity::RemoveIdentityError; @@ -39,7 +46,6 @@ use crate::error::identity::rename_identity::RenameIdentityError::{ use crate::error::identity::IdentityError; use crate::error::identity::IdentityError::{ EnsureIdentityConfigurationDirExistsFailed, GenerateFreshEncryptionConfigurationFailed, - GetIdentityPrincipalFailed, LoadIdentityConfigurationFailed, SaveIdentityConfigurationFailed, }; use crate::error::structured_file::StructuredFileError; use crate::foundation::get_user_home; @@ -238,7 +244,7 @@ impl IdentityManager { pub fn instantiate_selected_identity( &mut self, log: &Logger, - ) -> Result, IdentityError> { + ) -> Result, InstantiateIdentityFromNameError> { let name = self.selected_identity.clone(); self.instantiate_identity_from_name(name.as_str(), log) } @@ -248,12 +254,16 @@ impl IdentityManager { &mut self, identity_name: &str, log: &Logger, - ) -> Result, IdentityError> { + ) -> Result, InstantiateIdentityFromNameError> { let identity = match identity_name { ANONYMOUS_IDENTITY_NAME => Box::new(DfxIdentity::anonymous()), identity_name => { - self.require_identity_exists(log, identity_name)?; - Box::new(self.load_identity(identity_name, log)?) + self.require_identity_exists(log, identity_name) + .map_err(InstantiateIdentityFromNameError::RequireIdentityExistsFailed)?; + Box::new( + self.load_identity(identity_name, log) + .map_err(LoadIdentityFailed)?, + ) } }; use ic_agent::identity::Identity; @@ -262,9 +272,12 @@ impl IdentityManager { Ok(identity) } - fn load_identity(&self, name: &str, log: &Logger) -> Result { - let config = self.get_identity_config_or_default(name)?; + fn load_identity(&self, name: &str, log: &Logger) -> Result { + let config = self + .get_identity_config_or_default(name) + .map_err(LoadIdentityError::GetIdentityConfigOrDefaultFailed)?; DfxIdentity::new(name, config, self.file_locations(), log) + .map_err(LoadIdentityError::NewIdentityFailed) } /// Create a new identity (name -> generated key) @@ -641,7 +654,7 @@ impl IdentityManager { pub fn get_identity_config_or_default( &self, identity: &str, - ) -> Result { + ) -> Result { let json_path = self.get_identity_json_path(identity); if json_path.exists() { load_json_file(&json_path) @@ -758,7 +771,7 @@ pub(super) fn save_identity_configuration( trace!(log, "Writing identity configuration to {}", path.display()); ensure_parent_dir_exists(path).map_err(EnsureIdentityConfigurationDirExistsFailed)?; - save_json_file(path, &config).map_err(SaveIdentityConfigurationFailed) + save_json_file(path, &config).map_err(IdentityError::SaveIdentityConfigurationFailed) } /// Removes the file if it exists. diff --git a/src/dfx-core/src/identity/mod.rs b/src/dfx-core/src/identity/mod.rs index ccee470205..1684258301 100644 --- a/src/dfx-core/src/identity/mod.rs +++ b/src/dfx-core/src/identity/mod.rs @@ -3,10 +3,14 @@ //! Wallets are a map of network-identity, but don't have their own types or manager //! type. use crate::config::directories::{get_config_dfx_dir_path, get_shared_network_data_directory}; +use crate::error::identity::load_pem_identity::LoadPemIdentityError; +use crate::error::identity::load_pem_identity::LoadPemIdentityError::ReadIdentityFileFailed; +use crate::error::identity::new_hardware_identity::NewHardwareIdentityError; +use crate::error::identity::new_hardware_identity::NewHardwareIdentityError::InstantiateHardwareIdentityFailed; +use crate::error::identity::new_identity::NewIdentityError; use crate::error::identity::IdentityError; use crate::error::identity::IdentityError::{ - GetConfigDirectoryFailed, GetSharedNetworkDataDirectoryFailed, - InstantiateHardwareIdentityFailed, ReadIdentityFileFailed, RenameWalletFailed, + GetConfigDirectoryFailed, GetSharedNetworkDataDirectoryFailed, RenameWalletFailed, }; use crate::error::wallet_config::WalletConfigError; use crate::error::wallet_config::WalletConfigError::{ @@ -74,7 +78,11 @@ impl Identity { } } - fn basic(name: &str, pem_content: &[u8], was_encrypted: bool) -> Result { + fn basic( + name: &str, + pem_content: &[u8], + was_encrypted: bool, + ) -> Result { let inner = Box::new( BasicIdentity::from_pem(pem_content) .map_err(|e| ReadIdentityFileFailed(name.into(), Box::new(e)))?, @@ -91,7 +99,7 @@ impl Identity { name: &str, pem_content: &[u8], was_encrypted: bool, - ) -> Result { + ) -> Result { let inner = Box::new( Secp256k1Identity::from_pem(pem_content) .map_err(|e| ReadIdentityFileFailed(name.into(), Box::new(e)))?, @@ -104,7 +112,10 @@ impl Identity { }) } - fn hardware(name: &str, hsm: HardwareIdentityConfiguration) -> Result { + fn hardware( + name: &str, + hsm: HardwareIdentityConfiguration, + ) -> Result { let inner = Box::new( HardwareIdentity::new( hsm.pkcs11_lib_path, @@ -126,14 +137,16 @@ impl Identity { config: IdentityConfiguration, locations: &IdentityFileLocations, log: &Logger, - ) -> Result { + ) -> Result { if let Some(hsm) = config.hsm { - Identity::hardware(name, hsm) + Identity::hardware(name, hsm).map_err(NewIdentityError::NewHardwareIdentityFailed) } else { let (pem_content, was_encrypted) = - pem_safekeeping::load_pem(log, locations, name, &config)?; + pem_safekeeping::load_pem(log, locations, name, &config) + .map_err(NewIdentityError::LoadPemFailed)?; Identity::secp256k1(name, &pem_content, was_encrypted) .or_else(|e| Identity::basic(name, &pem_content, was_encrypted).map_err(|_| e)) + .map_err(NewIdentityError::LoadPemIdentityFailed) } } diff --git a/src/dfx-core/src/identity/pem_safekeeping.rs b/src/dfx-core/src/identity/pem_safekeeping.rs index a3103ee4ad..ca520114a5 100644 --- a/src/dfx-core/src/identity/pem_safekeeping.rs +++ b/src/dfx-core/src/identity/pem_safekeeping.rs @@ -3,6 +3,12 @@ use super::IdentityConfiguration; use crate::error::encryption::EncryptionError; use crate::error::encryption::EncryptionError::{DecryptContentFailed, HashPasswordFailed}; use crate::error::fs::FsError; +use crate::error::identity::load_pem::LoadPemError; +use crate::error::identity::load_pem::LoadPemError::LoadFromKeyringFailed; +use crate::error::identity::load_pem_from_file::LoadPemFromFileError; +use crate::error::identity::load_pem_from_file::LoadPemFromFileError::{ + DecryptPemFileFailed, ReadPemFileFailed, +}; use crate::error::identity::save_pem::SavePemError; use crate::error::identity::save_pem::SavePemError::{ CannotSavePemContentForHsm, WritePemToKeyringFailed, @@ -11,10 +17,6 @@ use crate::error::identity::write_pem_to_file::WritePemToFileError; use crate::error::identity::write_pem_to_file::WritePemToFileError::{ EncryptPemFileFailed, WritePemContentFailed, }; -use crate::error::identity::IdentityError; -use crate::error::identity::IdentityError::{ - DecryptPemFileFailed, LoadPemFromKeyringFailed, ReadPemFileFailed, -}; use crate::identity::identity_file_locations::IdentityFileLocations; use crate::identity::keyring_mock; use crate::identity::pem_safekeeping::PromptMode::{DecryptingToUse, EncryptingToCreate}; @@ -30,7 +32,7 @@ pub(crate) fn load_pem( locations: &IdentityFileLocations, identity_name: &str, identity_config: &IdentityConfiguration, -) -> Result<(Vec, bool), IdentityError> { +) -> Result<(Vec, bool), LoadPemError> { if identity_config.hsm.is_some() { unreachable!("Cannot load pem content for an HSM identity.") } else if identity_config.keyring_identity_suffix.is_some() { @@ -39,11 +41,12 @@ pub(crate) fn load_pem( "Found keyring identity suffix - PEM file is stored in keyring." ); let pem = keyring_mock::load_pem_from_keyring(identity_name) - .map_err(|err| LoadPemFromKeyringFailed(Box::new(identity_name.to_string()), err))?; + .map_err(|err| LoadFromKeyringFailed(Box::new(identity_name.to_string()), err))?; Ok((pem, true)) } else { let pem_path = locations.get_identity_pem_path(identity_name, identity_config); load_pem_from_file(&pem_path, Some(identity_config)) + .map_err(LoadPemError::LoadFromFileFailed) } } @@ -80,7 +83,7 @@ pub(crate) fn save_pem( pub fn load_pem_from_file( path: &Path, config: Option<&IdentityConfiguration>, -) -> Result<(Vec, bool), IdentityError> { +) -> Result<(Vec, bool), LoadPemFromFileError> { let content = crate::fs::read(path).map_err(ReadPemFileFailed)?; let (content, was_encrypted) = maybe_decrypt_pem(content.as_slice(), config) diff --git a/src/dfx/src/commands/canister/create.rs b/src/dfx/src/commands/canister/create.rs index 84df896632..ee152f6aac 100644 --- a/src/dfx/src/commands/canister/create.rs +++ b/src/dfx/src/commands/canister/create.rs @@ -15,7 +15,7 @@ use anyhow::{bail, Context}; use byte_unit::Byte; use candid::Principal as CanisterId; use clap::{ArgAction, Parser}; -use dfx_core::error::identity::IdentityError::GetIdentityPrincipalFailed; +use dfx_core::error::identity::instantiate_identity_from_name::InstantiateIdentityFromNameError::GetIdentityPrincipalFailed; use dfx_core::identity::CallSender; use ic_agent::Identity as _; use slog::info; diff --git a/src/dfx/src/commands/canister/update_settings.rs b/src/dfx/src/commands/canister/update_settings.rs index 58d5a1d43d..b19f846991 100644 --- a/src/dfx/src/commands/canister/update_settings.rs +++ b/src/dfx/src/commands/canister/update_settings.rs @@ -14,7 +14,7 @@ use byte_unit::Byte; use candid::Principal as CanisterId; use clap::{ArgAction, Parser}; use dfx_core::cli::ask_for_consent; -use dfx_core::error::identity::IdentityError::GetIdentityPrincipalFailed; +use dfx_core::error::identity::instantiate_identity_from_name::InstantiateIdentityFromNameError::GetIdentityPrincipalFailed; use dfx_core::identity::CallSender; use fn_error_context::context; use ic_agent::identity::Identity; From 2b7f4f1ea7e617ac8e26be61d2e5e2b56f72ad4c Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Fri, 22 Sep 2023 20:40:54 -0700 Subject: [PATCH 12/29] refactor: method-specific concrete errors for dfx core (#3382) Moved more error types from `IdentityError` to method-specific error enums: - CreateIdentityConfigError - MapWalletsToRenamedIdentityError - RenameWalletGlobalConfigKeyError - SaveIdentityConfigurationError - ValidatePemFileError --- .../error/identity/create_identity_config.rs | 8 +++++ .../src/error/identity/create_new_identity.rs | 9 +++-- .../src/error/identity/export_identity.rs | 3 +- .../map_wallets_to_renamed_identity.rs | 15 ++++++++ src/dfx-core/src/error/identity/mod.rs | 36 +++---------------- .../src/error/identity/rename_identity.rs | 6 ++-- .../rename_wallet_global_config_key.rs | 8 +++++ .../identity/save_identity_configuration.rs | 12 +++++++ .../src/error/identity/validate_pem_file.rs | 16 +++++++++ src/dfx-core/src/identity/identity_manager.rs | 14 ++++---- src/dfx-core/src/identity/mod.rs | 24 +++++++------ src/dfx-core/src/identity/pem_utils.rs | 8 +++-- 12 files changed, 103 insertions(+), 56 deletions(-) create mode 100644 src/dfx-core/src/error/identity/create_identity_config.rs create mode 100644 src/dfx-core/src/error/identity/map_wallets_to_renamed_identity.rs create mode 100644 src/dfx-core/src/error/identity/rename_wallet_global_config_key.rs create mode 100644 src/dfx-core/src/error/identity/save_identity_configuration.rs create mode 100644 src/dfx-core/src/error/identity/validate_pem_file.rs diff --git a/src/dfx-core/src/error/identity/create_identity_config.rs b/src/dfx-core/src/error/identity/create_identity_config.rs new file mode 100644 index 0000000000..2367238749 --- /dev/null +++ b/src/dfx-core/src/error/identity/create_identity_config.rs @@ -0,0 +1,8 @@ +use crate::error::encryption::EncryptionError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum CreateIdentityConfigError { + #[error("Failed to generate a fresh encryption configuration: {0}")] + GenerateFreshEncryptionConfigurationFailed(EncryptionError), +} diff --git a/src/dfx-core/src/error/identity/create_new_identity.rs b/src/dfx-core/src/error/identity/create_new_identity.rs index 0f0739fee4..7bf9fdf46b 100644 --- a/src/dfx-core/src/error/identity/create_new_identity.rs +++ b/src/dfx-core/src/error/identity/create_new_identity.rs @@ -1,9 +1,12 @@ use crate::error::fs::FsError; use crate::error::identity::convert_mnemonic_to_key::ConvertMnemonicToKeyError; +use crate::error::identity::create_identity_config::CreateIdentityConfigError; use crate::error::identity::generate_key::GenerateKeyError; use crate::error::identity::load_pem_from_file::LoadPemFromFileError; use crate::error::identity::remove_identity::RemoveIdentityError; +use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError; use crate::error::identity::save_pem::SavePemError; +use crate::error::identity::validate_pem_file::ValidatePemFileError; use crate::error::identity::IdentityError; use thiserror::Error; @@ -22,7 +25,7 @@ pub enum CreateNewIdentityError { ConvertSecretKeyToSec1PemFailed(Box), #[error("Failed to create identity config: {0}")] - CreateIdentityConfigFailed(IdentityError), + CreateIdentityConfigFailed(CreateIdentityConfigError), #[error("Failed to create mnemonic from phrase: {0}")] CreateMnemonicFromPhraseFailed(String), @@ -46,7 +49,7 @@ pub enum CreateNewIdentityError { RenameTemporaryIdentityDirectoryFailed(FsError), #[error("Failed to save identity configuration: {0}")] - SaveIdentityConfigurationFailed(IdentityError), + SaveIdentityConfigurationFailed(SaveIdentityConfigurationError), #[error("Failed to save pem: {0}")] SavePemFailed(SavePemError), @@ -58,5 +61,5 @@ pub enum CreateNewIdentityError { SwitchToAnonymousIdentityFailed(IdentityError), #[error("Failed to validate pem file: {0}")] - ValidatePemFileFailed(IdentityError), + ValidatePemFileFailed(ValidatePemFileError), } diff --git a/src/dfx-core/src/error/identity/export_identity.rs b/src/dfx-core/src/error/identity/export_identity.rs index 9882ee9e7f..92b493c6b6 100644 --- a/src/dfx-core/src/error/identity/export_identity.rs +++ b/src/dfx-core/src/error/identity/export_identity.rs @@ -1,5 +1,6 @@ use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; use crate::error::identity::load_pem::LoadPemError; +use crate::error::identity::validate_pem_file::ValidatePemFileError; use crate::error::identity::IdentityError; use std::string::FromUtf8Error; use thiserror::Error; @@ -19,5 +20,5 @@ pub enum ExportIdentityError { TranslatePemContentToTextFailed(FromUtf8Error), #[error("Failed to validate pem file: {0}")] - ValidatePemFileFailed(IdentityError), + ValidatePemFileFailed(ValidatePemFileError), } diff --git a/src/dfx-core/src/error/identity/map_wallets_to_renamed_identity.rs b/src/dfx-core/src/error/identity/map_wallets_to_renamed_identity.rs new file mode 100644 index 0000000000..6fef2e6fb3 --- /dev/null +++ b/src/dfx-core/src/error/identity/map_wallets_to_renamed_identity.rs @@ -0,0 +1,15 @@ +use crate::error::config::ConfigError; +use crate::error::identity::rename_wallet_global_config_key::RenameWalletGlobalConfigKeyError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum MapWalletsToRenamedIdentityError { + #[error("Failed to get config directory for identity manager: {0}")] + GetConfigDirectoryFailed(ConfigError), + + #[error("Failed to get shared network data directory: {0}")] + GetSharedNetworkDataDirectoryFailed(ConfigError), + + #[error("Failed to rename wallet global config key: {0}")] + RenameWalletGlobalConfigKeyFailed(RenameWalletGlobalConfigKeyError), +} diff --git a/src/dfx-core/src/error/identity/mod.rs b/src/dfx-core/src/error/identity/mod.rs index 346ce8e569..24e53f24af 100644 --- a/src/dfx-core/src/error/identity/mod.rs +++ b/src/dfx-core/src/error/identity/mod.rs @@ -1,4 +1,5 @@ pub mod convert_mnemonic_to_key; +pub mod create_identity_config; pub mod create_new_identity; pub mod export_identity; pub mod generate_key; @@ -10,61 +11,34 @@ pub mod load_identity; pub mod load_pem; pub mod load_pem_from_file; pub mod load_pem_identity; +pub mod map_wallets_to_renamed_identity; pub mod new_hardware_identity; pub mod new_identity; pub mod new_identity_manager; pub mod remove_identity; pub mod rename_identity; +pub mod rename_wallet_global_config_key; +pub mod save_identity_configuration; pub mod save_pem; +pub mod validate_pem_file; pub mod write_pem_to_file; -use crate::error::config::ConfigError; -use crate::error::encryption::EncryptionError; -use crate::error::fs::FsError; use crate::error::structured_file::StructuredFileError; -use crate::error::wallet_config::WalletConfigError; use ic_agent::export::PrincipalError; -use ic_agent::identity::PemError; use std::path::PathBuf; use thiserror::Error; #[derive(Error, Debug)] pub enum IdentityError { - #[error("Failed to ensure identity configuration directory exists: {0}")] - EnsureIdentityConfigurationDirExistsFailed(FsError), - - #[error("Failed to generate a fresh encryption configuration: {0}")] - GenerateFreshEncryptionConfigurationFailed(EncryptionError), - - #[error("Failed to get config directory for identity manager: {0}")] - GetConfigDirectoryFailed(ConfigError), - - #[error("Failed to get shared network data directory: {0}")] - GetSharedNetworkDataDirectoryFailed(ConfigError), - #[error("Identity {0} does not exist at '{1}'.")] IdentityDoesNotExist(String, PathBuf), #[error("Failed to read principal from id '{0}': {1}")] ParsePrincipalFromIdFailed(String, PrincipalError), - #[error("Failed to rename '{0}' to '{1}' in the global wallet config: {2}")] - RenameWalletFailed(Box, Box, WalletConfigError), - #[error("An Identity named {0} cannot be created as it is reserved for internal use.")] ReservedIdentityName(String), - #[error("Failed to save identity configuration: {0}")] - SaveIdentityConfigurationFailed(StructuredFileError), - #[error("Failed to save identity manager configuration: {0}")] SaveIdentityManagerConfigurationFailed(StructuredFileError), - - #[error( - "Ed25519 v1 keys (those generated by OpenSSL) are not supported. Try again with a v2 key" - )] - UnsupportedKeyVersion(), - - #[error("Failed to validate PEM content: {0}")] - ValidatePemContentFailed(Box), } diff --git a/src/dfx-core/src/error/identity/rename_identity.rs b/src/dfx-core/src/error/identity/rename_identity.rs index 211dbcd7b2..d5cfc65e89 100644 --- a/src/dfx-core/src/error/identity/rename_identity.rs +++ b/src/dfx-core/src/error/identity/rename_identity.rs @@ -1,6 +1,8 @@ use crate::error::fs::FsError; use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; use crate::error::identity::load_pem::LoadPemError; +use crate::error::identity::map_wallets_to_renamed_identity::MapWalletsToRenamedIdentityError; +use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError; use crate::error::identity::save_pem::SavePemError; use crate::error::identity::IdentityError; use crate::error::keyring::KeyringError; @@ -24,7 +26,7 @@ pub enum RenameIdentityError { LoadPemFailed(LoadPemError), #[error("Failed to map wallets to renamed identity: {0}")] - MapWalletsToRenamedIdentityFailed(IdentityError /*MapWalletsToRenamedIdentityError*/), + MapWalletsToRenamedIdentityFailed(MapWalletsToRenamedIdentityError), #[error("Failed to remove identity from keyring: {0}")] RemoveIdentityFromKeyringFailed(KeyringError), @@ -33,7 +35,7 @@ pub enum RenameIdentityError { RenameIdentityDirectoryFailed(FsError), #[error("Failed to save identity configuration: {0}")] - SaveIdentityConfigurationFailed(IdentityError), + SaveIdentityConfigurationFailed(SaveIdentityConfigurationError), #[error("Failed to save pem: {0}")] SavePemFailed(SavePemError), diff --git a/src/dfx-core/src/error/identity/rename_wallet_global_config_key.rs b/src/dfx-core/src/error/identity/rename_wallet_global_config_key.rs new file mode 100644 index 0000000000..3e67cef07e --- /dev/null +++ b/src/dfx-core/src/error/identity/rename_wallet_global_config_key.rs @@ -0,0 +1,8 @@ +use crate::error::wallet_config::WalletConfigError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum RenameWalletGlobalConfigKeyError { + #[error("Failed to rename '{0}' to '{1}' in the global wallet config: {2}")] + RenameWalletFailed(Box, Box, WalletConfigError), +} diff --git a/src/dfx-core/src/error/identity/save_identity_configuration.rs b/src/dfx-core/src/error/identity/save_identity_configuration.rs new file mode 100644 index 0000000000..b4e4921e9e --- /dev/null +++ b/src/dfx-core/src/error/identity/save_identity_configuration.rs @@ -0,0 +1,12 @@ +use crate::error::fs::FsError; +use crate::error::structured_file::StructuredFileError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum SaveIdentityConfigurationError { + #[error("Failed to ensure identity configuration directory exists: {0}")] + EnsureIdentityConfigurationDirExistsFailed(FsError), + + #[error("Failed to save identity configuration: {0}")] + SaveIdentityConfigurationFailed(StructuredFileError), +} diff --git a/src/dfx-core/src/error/identity/validate_pem_file.rs b/src/dfx-core/src/error/identity/validate_pem_file.rs new file mode 100644 index 0000000000..4be6561ca4 --- /dev/null +++ b/src/dfx-core/src/error/identity/validate_pem_file.rs @@ -0,0 +1,16 @@ +use ic_agent::identity::PemError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum ValidatePemFileError { + #[error(transparent)] + PemError(#[from] ic_agent::identity::PemError), + + #[error( + "Ed25519 v1 keys (those generated by OpenSSL) are not supported. Try again with a v2 key" + )] + UnsupportedKeyVersion(), + + #[error("Failed to validate PEM content: {0}")] + ValidatePemContentFailed(Box), +} diff --git a/src/dfx-core/src/identity/identity_manager.rs b/src/dfx-core/src/identity/identity_manager.rs index 9a8f7db47e..41f81f1160 100644 --- a/src/dfx-core/src/identity/identity_manager.rs +++ b/src/dfx-core/src/identity/identity_manager.rs @@ -6,6 +6,8 @@ use crate::error::encryption::EncryptionError::{NonceGenerationFailed, SaltGener use crate::error::fs::FsError; use crate::error::identity::convert_mnemonic_to_key::ConvertMnemonicToKeyError; use crate::error::identity::convert_mnemonic_to_key::ConvertMnemonicToKeyError::DeriveExtendedKeyFromPathFailed; +use crate::error::identity::create_identity_config::CreateIdentityConfigError; +use crate::error::identity::create_identity_config::CreateIdentityConfigError::GenerateFreshEncryptionConfigurationFailed; use crate::error::identity::create_new_identity::CreateNewIdentityError; use crate::error::identity::create_new_identity::CreateNewIdentityError::{ CleanupPreviousCreationAttemptsFailed, ConvertSecretKeyToSec1PemFailed, @@ -43,10 +45,9 @@ use crate::error::identity::rename_identity::RenameIdentityError::{ GetIdentityConfigFailed, LoadPemFailed, MapWalletsToRenamedIdentityFailed, RenameIdentityDirectoryFailed, SavePemFailed, SwitchDefaultIdentitySettingsFailed, }; +use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError; +use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError::EnsureIdentityConfigurationDirExistsFailed; use crate::error::identity::IdentityError; -use crate::error::identity::IdentityError::{ - EnsureIdentityConfigurationDirExistsFailed, GenerateFreshEncryptionConfigurationFailed, -}; use crate::error::structured_file::StructuredFileError; use crate::foundation::get_user_home; use crate::fs::composite::ensure_parent_dir_exists; @@ -318,7 +319,7 @@ impl IdentityManager { mode: IdentityStorageMode, name: &str, hardware_config: Option, - ) -> Result { + ) -> Result { if let Some(hsm) = hardware_config { Ok(IdentityConfiguration { hsm: Some(hsm), @@ -767,11 +768,12 @@ pub(super) fn save_identity_configuration( log: &Logger, path: &Path, config: &IdentityConfiguration, -) -> Result<(), IdentityError> { +) -> Result<(), SaveIdentityConfigurationError> { trace!(log, "Writing identity configuration to {}", path.display()); ensure_parent_dir_exists(path).map_err(EnsureIdentityConfigurationDirExistsFailed)?; - save_json_file(path, &config).map_err(IdentityError::SaveIdentityConfigurationFailed) + save_json_file(path, &config) + .map_err(SaveIdentityConfigurationError::SaveIdentityConfigurationFailed) } /// Removes the file if it exists. diff --git a/src/dfx-core/src/identity/mod.rs b/src/dfx-core/src/identity/mod.rs index 1684258301..1a0abe8d2c 100644 --- a/src/dfx-core/src/identity/mod.rs +++ b/src/dfx-core/src/identity/mod.rs @@ -5,13 +5,14 @@ use crate::config::directories::{get_config_dfx_dir_path, get_shared_network_data_directory}; use crate::error::identity::load_pem_identity::LoadPemIdentityError; use crate::error::identity::load_pem_identity::LoadPemIdentityError::ReadIdentityFileFailed; +use crate::error::identity::map_wallets_to_renamed_identity::MapWalletsToRenamedIdentityError; +use crate::error::identity::map_wallets_to_renamed_identity::MapWalletsToRenamedIdentityError::RenameWalletGlobalConfigKeyFailed; use crate::error::identity::new_hardware_identity::NewHardwareIdentityError; use crate::error::identity::new_hardware_identity::NewHardwareIdentityError::InstantiateHardwareIdentityFailed; use crate::error::identity::new_identity::NewIdentityError; +use crate::error::identity::rename_wallet_global_config_key::RenameWalletGlobalConfigKeyError; +use crate::error::identity::rename_wallet_global_config_key::RenameWalletGlobalConfigKeyError::RenameWalletFailed; use crate::error::identity::IdentityError; -use crate::error::identity::IdentityError::{ - GetConfigDirectoryFailed, GetSharedNetworkDataDirectoryFailed, RenameWalletFailed, -}; use crate::error::wallet_config::WalletConfigError; use crate::error::wallet_config::WalletConfigError::{ EnsureWalletConfigDirFailed, LoadWalletConfigFailed, SaveWalletConfigFailed, @@ -196,7 +197,7 @@ impl Identity { original_identity: &str, renamed_identity: &str, wallet_path: PathBuf, - ) -> Result<(), IdentityError> { + ) -> Result<(), RenameWalletGlobalConfigKeyError> { Identity::load_wallet_config(&wallet_path) .and_then(|mut config| { let identities = &mut config.identities; @@ -222,9 +223,9 @@ impl Identity { project_temp_dir: Option, original_identity: &str, renamed_identity: &str, - ) -> Result<(), IdentityError> { + ) -> Result<(), MapWalletsToRenamedIdentityError> { let persistent_wallet_path = get_config_dfx_dir_path() - .map_err(GetConfigDirectoryFailed)? + .map_err(MapWalletsToRenamedIdentityError::GetConfigDirectoryFailed)? .join("identity") .join(original_identity) .join(WALLET_CONFIG_FILENAME); @@ -233,17 +234,19 @@ impl Identity { original_identity, renamed_identity, persistent_wallet_path, - )?; + ) + .map_err(RenameWalletGlobalConfigKeyFailed)?; } let shared_local_network_wallet_path = get_shared_network_data_directory("local") - .map_err(GetSharedNetworkDataDirectoryFailed)? + .map_err(MapWalletsToRenamedIdentityError::GetSharedNetworkDataDirectoryFailed)? .join(WALLET_CONFIG_FILENAME); if shared_local_network_wallet_path.exists() { Identity::rename_wallet_global_config_key( original_identity, renamed_identity, shared_local_network_wallet_path, - )?; + ) + .map_err(RenameWalletGlobalConfigKeyFailed)?; } if let Some(temp_dir) = project_temp_dir { let local_wallet_path = temp_dir.join("local").join(WALLET_CONFIG_FILENAME); @@ -252,7 +255,8 @@ impl Identity { original_identity, renamed_identity, local_wallet_path, - )?; + ) + .map_err(RenameWalletGlobalConfigKeyFailed)?; } } Ok(()) diff --git a/src/dfx-core/src/identity/pem_utils.rs b/src/dfx-core/src/identity/pem_utils.rs index 0466a0c78f..8e157341aa 100644 --- a/src/dfx-core/src/identity/pem_utils.rs +++ b/src/dfx-core/src/identity/pem_utils.rs @@ -1,10 +1,12 @@ -use crate::error::identity::IdentityError; -use crate::error::identity::IdentityError::{UnsupportedKeyVersion, ValidatePemContentFailed}; +use crate::error::identity::validate_pem_file::ValidatePemFileError; +use crate::error::identity::validate_pem_file::ValidatePemFileError::{ + UnsupportedKeyVersion, ValidatePemContentFailed, +}; use ic_agent::identity::BasicIdentity; use ic_agent::identity::PemError; use ic_agent::identity::Secp256k1Identity; -pub fn validate_pem_file(pem_content: &[u8]) -> Result<(), IdentityError> { +pub fn validate_pem_file(pem_content: &[u8]) -> Result<(), ValidatePemFileError> { let secp_res = Secp256k1Identity::from_pem(pem_content).map_err(|e| ValidatePemContentFailed(Box::new(e))); if let Err(e) = secp_res { From b24cc40d47eb0d7b3a9f3534f2fba985b2051496 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Mon, 25 Sep 2023 00:33:19 -0700 Subject: [PATCH 13/29] refactor: move remaining IdentityError types to method-specific errors (#3383) Move the remaining enumerated types in IdentityError to method-specific error types, and remove IdentityError. New types: - CallSenderFromWalletError - RequireIdentityExistsError - UseIdentityByNameError - WriteDefaultIdentityError --- .../error/identity/call_sender_from_wallet.rs | 8 +++++ .../src/error/identity/create_new_identity.rs | 6 ++-- .../src/error/identity/export_identity.rs | 4 +-- .../instantiate_identity_from_name.rs | 4 +-- src/dfx-core/src/error/identity/mod.rs | 24 +++---------- .../error/identity/new_identity_manager.rs | 4 +-- .../src/error/identity/remove_identity.rs | 4 +-- .../src/error/identity/rename_identity.rs | 7 ++-- .../error/identity/require_identity_exists.rs | 11 ++++++ .../error/identity/use_identity_by_name.rs | 12 +++++++ .../error/identity/write_default_identity.rs | 8 +++++ src/dfx-core/src/identity/identity_manager.rs | 34 ++++++++++++++----- src/dfx-core/src/identity/mod.rs | 8 ++--- src/dfx/src/lib/error/mod.rs | 1 - 14 files changed, 87 insertions(+), 48 deletions(-) create mode 100644 src/dfx-core/src/error/identity/call_sender_from_wallet.rs create mode 100644 src/dfx-core/src/error/identity/require_identity_exists.rs create mode 100644 src/dfx-core/src/error/identity/use_identity_by_name.rs create mode 100644 src/dfx-core/src/error/identity/write_default_identity.rs diff --git a/src/dfx-core/src/error/identity/call_sender_from_wallet.rs b/src/dfx-core/src/error/identity/call_sender_from_wallet.rs new file mode 100644 index 0000000000..38ce501692 --- /dev/null +++ b/src/dfx-core/src/error/identity/call_sender_from_wallet.rs @@ -0,0 +1,8 @@ +use candid::types::principal::PrincipalError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum CallSenderFromWalletError { + #[error("Failed to read principal from id '{0}': {1}")] + ParsePrincipalFromIdFailed(String, PrincipalError), +} diff --git a/src/dfx-core/src/error/identity/create_new_identity.rs b/src/dfx-core/src/error/identity/create_new_identity.rs index 7bf9fdf46b..1d1f242a33 100644 --- a/src/dfx-core/src/error/identity/create_new_identity.rs +++ b/src/dfx-core/src/error/identity/create_new_identity.rs @@ -6,8 +6,8 @@ use crate::error::identity::load_pem_from_file::LoadPemFromFileError; use crate::error::identity::remove_identity::RemoveIdentityError; use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError; use crate::error::identity::save_pem::SavePemError; +use crate::error::identity::use_identity_by_name::UseIdentityByNameError; use crate::error::identity::validate_pem_file::ValidatePemFileError; -use crate::error::identity::IdentityError; use thiserror::Error; #[derive(Error, Debug)] @@ -55,10 +55,10 @@ pub enum CreateNewIdentityError { SavePemFailed(SavePemError), #[error("Failed to switch back over to the identity you're replacing: {0}")] - SwitchBackToIdentityFailed(IdentityError), + SwitchBackToIdentityFailed(UseIdentityByNameError), #[error("Failed to temporarily switch over to anonymous identity: {0}")] - SwitchToAnonymousIdentityFailed(IdentityError), + SwitchToAnonymousIdentityFailed(UseIdentityByNameError), #[error("Failed to validate pem file: {0}")] ValidatePemFileFailed(ValidatePemFileError), diff --git a/src/dfx-core/src/error/identity/export_identity.rs b/src/dfx-core/src/error/identity/export_identity.rs index 92b493c6b6..5a8f5c27ae 100644 --- a/src/dfx-core/src/error/identity/export_identity.rs +++ b/src/dfx-core/src/error/identity/export_identity.rs @@ -1,7 +1,7 @@ use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; use crate::error::identity::load_pem::LoadPemError; +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; use crate::error::identity::validate_pem_file::ValidatePemFileError; -use crate::error::identity::IdentityError; use std::string::FromUtf8Error; use thiserror::Error; @@ -11,7 +11,7 @@ pub enum ExportIdentityError { GetIdentityConfigFailed(GetIdentityConfigOrDefaultError), #[error("The specified identity does not exist: {0}")] - IdentityDoesNotExist(IdentityError), + IdentityDoesNotExist(RequireIdentityExistsError), #[error("Failed to load pem file: {0}")] LoadPemFailed(LoadPemError), diff --git a/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs b/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs index 139dcae094..68f9992780 100644 --- a/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs +++ b/src/dfx-core/src/error/identity/instantiate_identity_from_name.rs @@ -1,5 +1,5 @@ use crate::error::identity::load_identity::LoadIdentityError; -use crate::error::identity::IdentityError; +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; use thiserror::Error; #[derive(Error, Debug)] @@ -11,5 +11,5 @@ pub enum InstantiateIdentityFromNameError { LoadIdentityFailed(LoadIdentityError), #[error("Identity must exist: {0}")] - RequireIdentityExistsFailed(IdentityError), + RequireIdentityExistsFailed(RequireIdentityExistsError), } diff --git a/src/dfx-core/src/error/identity/mod.rs b/src/dfx-core/src/error/identity/mod.rs index 24e53f24af..ba4412624b 100644 --- a/src/dfx-core/src/error/identity/mod.rs +++ b/src/dfx-core/src/error/identity/mod.rs @@ -1,3 +1,4 @@ +pub mod call_sender_from_wallet; pub mod convert_mnemonic_to_key; pub mod create_identity_config; pub mod create_new_identity; @@ -18,27 +19,10 @@ pub mod new_identity_manager; pub mod remove_identity; pub mod rename_identity; pub mod rename_wallet_global_config_key; +pub mod require_identity_exists; pub mod save_identity_configuration; pub mod save_pem; +pub mod use_identity_by_name; pub mod validate_pem_file; +pub mod write_default_identity; pub mod write_pem_to_file; - -use crate::error::structured_file::StructuredFileError; -use ic_agent::export::PrincipalError; -use std::path::PathBuf; -use thiserror::Error; - -#[derive(Error, Debug)] -pub enum IdentityError { - #[error("Identity {0} does not exist at '{1}'.")] - IdentityDoesNotExist(String, PathBuf), - - #[error("Failed to read principal from id '{0}': {1}")] - ParsePrincipalFromIdFailed(String, PrincipalError), - - #[error("An Identity named {0} cannot be created as it is reserved for internal use.")] - ReservedIdentityName(String), - - #[error("Failed to save identity manager configuration: {0}")] - SaveIdentityManagerConfigurationFailed(StructuredFileError), -} diff --git a/src/dfx-core/src/error/identity/new_identity_manager.rs b/src/dfx-core/src/error/identity/new_identity_manager.rs index 137862014d..d5016e06c9 100644 --- a/src/dfx-core/src/error/identity/new_identity_manager.rs +++ b/src/dfx-core/src/error/identity/new_identity_manager.rs @@ -1,6 +1,6 @@ use crate::error::config::ConfigError; use crate::error::identity::initialize_identity_manager::InitializeIdentityManagerError; -use crate::error::identity::IdentityError; +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; use crate::error::structured_file::StructuredFileError; use thiserror::Error; @@ -16,5 +16,5 @@ pub enum NewIdentityManagerError { InitializeFailed(InitializeIdentityManagerError), #[error("The specified identity must exist: {0}")] - OverrideIdentityMustExist(IdentityError), + OverrideIdentityMustExist(RequireIdentityExistsError), } diff --git a/src/dfx-core/src/error/identity/remove_identity.rs b/src/dfx-core/src/error/identity/remove_identity.rs index c4b43d6e08..a7e93fe0e1 100644 --- a/src/dfx-core/src/error/identity/remove_identity.rs +++ b/src/dfx-core/src/error/identity/remove_identity.rs @@ -1,5 +1,5 @@ use crate::error::fs::FsError; -use crate::error::identity::IdentityError; +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; use crate::error::keyring::KeyringError; use crate::error::wallet_config::WalletConfigError; use thiserror::Error; @@ -28,5 +28,5 @@ pub enum RemoveIdentityError { RemoveIdentityFromKeyringFailed(KeyringError), #[error("Identity must exist: {0}")] - RequireIdentityExistsFailed(IdentityError), + RequireIdentityExistsFailed(RequireIdentityExistsError), } diff --git a/src/dfx-core/src/error/identity/rename_identity.rs b/src/dfx-core/src/error/identity/rename_identity.rs index d5cfc65e89..658f728ce6 100644 --- a/src/dfx-core/src/error/identity/rename_identity.rs +++ b/src/dfx-core/src/error/identity/rename_identity.rs @@ -2,9 +2,10 @@ use crate::error::fs::FsError; use crate::error::identity::get_identity_config_or_default::GetIdentityConfigOrDefaultError; use crate::error::identity::load_pem::LoadPemError; use crate::error::identity::map_wallets_to_renamed_identity::MapWalletsToRenamedIdentityError; +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError; use crate::error::identity::save_pem::SavePemError; -use crate::error::identity::IdentityError; +use crate::error::identity::write_default_identity::WriteDefaultIdentityError; use crate::error::keyring::KeyringError; use thiserror::Error; @@ -20,7 +21,7 @@ pub enum RenameIdentityError { IdentityAlreadyExists(), #[error("Identity does not exist: {0}")] - IdentityDoesNotExist(IdentityError), + IdentityDoesNotExist(RequireIdentityExistsError), #[error("Failed to load pem: {0}")] LoadPemFailed(LoadPemError), @@ -41,5 +42,5 @@ pub enum RenameIdentityError { SavePemFailed(SavePemError), #[error("Failed to switch over default identity settings: {0}")] - SwitchDefaultIdentitySettingsFailed(IdentityError), + SwitchDefaultIdentitySettingsFailed(WriteDefaultIdentityError), } diff --git a/src/dfx-core/src/error/identity/require_identity_exists.rs b/src/dfx-core/src/error/identity/require_identity_exists.rs new file mode 100644 index 0000000000..12edc3f6c8 --- /dev/null +++ b/src/dfx-core/src/error/identity/require_identity_exists.rs @@ -0,0 +1,11 @@ +use std::path::PathBuf; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum RequireIdentityExistsError { + #[error("Identity {0} does not exist at '{1}'.")] + IdentityDoesNotExist(String, PathBuf), + + #[error("An Identity named {0} cannot be created as it is reserved for internal use.")] + ReservedIdentityName(String), +} diff --git a/src/dfx-core/src/error/identity/use_identity_by_name.rs b/src/dfx-core/src/error/identity/use_identity_by_name.rs new file mode 100644 index 0000000000..25d0f871a3 --- /dev/null +++ b/src/dfx-core/src/error/identity/use_identity_by_name.rs @@ -0,0 +1,12 @@ +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; +use crate::error::identity::write_default_identity::WriteDefaultIdentityError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum UseIdentityByNameError { + #[error("Identity must exist: {0}")] + RequireIdentityExistsFailed(RequireIdentityExistsError), + + #[error("Failed to write default identity: {0}")] + WriteDefaultIdentityFailed(WriteDefaultIdentityError), +} diff --git a/src/dfx-core/src/error/identity/write_default_identity.rs b/src/dfx-core/src/error/identity/write_default_identity.rs new file mode 100644 index 0000000000..8c15ea9ef3 --- /dev/null +++ b/src/dfx-core/src/error/identity/write_default_identity.rs @@ -0,0 +1,8 @@ +use crate::error::structured_file::StructuredFileError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum WriteDefaultIdentityError { + #[error("Failed to save identity manager configuration: {0}")] + SaveIdentityManagerConfigurationFailed(StructuredFileError), +} diff --git a/src/dfx-core/src/identity/identity_manager.rs b/src/dfx-core/src/identity/identity_manager.rs index 41f81f1160..29bd8a8209 100644 --- a/src/dfx-core/src/identity/identity_manager.rs +++ b/src/dfx-core/src/identity/identity_manager.rs @@ -45,9 +45,13 @@ use crate::error::identity::rename_identity::RenameIdentityError::{ GetIdentityConfigFailed, LoadPemFailed, MapWalletsToRenamedIdentityFailed, RenameIdentityDirectoryFailed, SavePemFailed, SwitchDefaultIdentitySettingsFailed, }; +use crate::error::identity::require_identity_exists::RequireIdentityExistsError; use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError; use crate::error::identity::save_identity_configuration::SaveIdentityConfigurationError::EnsureIdentityConfigurationDirExistsFailed; -use crate::error::identity::IdentityError; +use crate::error::identity::use_identity_by_name::UseIdentityByNameError; +use crate::error::identity::use_identity_by_name::UseIdentityByNameError::WriteDefaultIdentityFailed; +use crate::error::identity::write_default_identity::WriteDefaultIdentityError; +use crate::error::identity::write_default_identity::WriteDefaultIdentityError::SaveIdentityManagerConfigurationFailed; use crate::error::structured_file::StructuredFileError; use crate::foundation::get_user_home; use crate::fs::composite::ensure_parent_dir_exists; @@ -595,32 +599,44 @@ impl IdentityManager { } /// Select an identity by name to use by default - pub fn use_identity_named(&mut self, log: &Logger, name: &str) -> Result<(), IdentityError> { - self.require_identity_exists(log, name)?; - self.write_default_identity(name)?; + pub fn use_identity_named( + &mut self, + log: &Logger, + name: &str, + ) -> Result<(), UseIdentityByNameError> { + self.require_identity_exists(log, name) + .map_err(UseIdentityByNameError::RequireIdentityExistsFailed)?; + self.write_default_identity(name) + .map_err(WriteDefaultIdentityFailed)?; self.configuration.default = name.to_string(); Ok(()) } - fn write_default_identity(&self, name: &str) -> Result<(), IdentityError> { + fn write_default_identity(&self, name: &str) -> Result<(), WriteDefaultIdentityError> { let config = Configuration { default: String::from(name), }; save_configuration(&self.identity_json_path, &config) - .map_err(IdentityError::SaveIdentityManagerConfigurationFailed)?; + .map_err(SaveIdentityManagerConfigurationFailed)?; Ok(()) } /// Determines if there are enough files present to consider the identity as existing. /// Does NOT guarantee that the identity will load correctly. - pub fn require_identity_exists(&self, log: &Logger, name: &str) -> Result<(), IdentityError> { + pub fn require_identity_exists( + &self, + log: &Logger, + name: &str, + ) -> Result<(), RequireIdentityExistsError> { trace!(log, "Checking if identity '{name}' exists."); if name == ANONYMOUS_IDENTITY_NAME { return Ok(()); } if name.starts_with(TEMP_IDENTITY_PREFIX) { - return Err(IdentityError::ReservedIdentityName(String::from(name))); + return Err(RequireIdentityExistsError::ReservedIdentityName( + String::from(name), + )); } let json_path = self.get_identity_json_path(name); @@ -628,7 +644,7 @@ impl IdentityManager { let encrypted_pem_path = self.file_locations.get_encrypted_identity_pem_path(name); if !plaintext_pem_path.exists() && !encrypted_pem_path.exists() && !json_path.exists() { - Err(IdentityError::IdentityDoesNotExist( + Err(RequireIdentityExistsError::IdentityDoesNotExist( String::from(name), json_path, )) diff --git a/src/dfx-core/src/identity/mod.rs b/src/dfx-core/src/identity/mod.rs index 1a0abe8d2c..c82e568cb8 100644 --- a/src/dfx-core/src/identity/mod.rs +++ b/src/dfx-core/src/identity/mod.rs @@ -3,6 +3,8 @@ //! Wallets are a map of network-identity, but don't have their own types or manager //! type. use crate::config::directories::{get_config_dfx_dir_path, get_shared_network_data_directory}; +use crate::error::identity::call_sender_from_wallet::CallSenderFromWalletError; +use crate::error::identity::call_sender_from_wallet::CallSenderFromWalletError::ParsePrincipalFromIdFailed; use crate::error::identity::load_pem_identity::LoadPemIdentityError; use crate::error::identity::load_pem_identity::LoadPemIdentityError::ReadIdentityFileFailed; use crate::error::identity::map_wallets_to_renamed_identity::MapWalletsToRenamedIdentityError; @@ -12,7 +14,6 @@ use crate::error::identity::new_hardware_identity::NewHardwareIdentityError::Ins use crate::error::identity::new_identity::NewIdentityError; use crate::error::identity::rename_wallet_global_config_key::RenameWalletGlobalConfigKeyError; use crate::error::identity::rename_wallet_global_config_key::RenameWalletGlobalConfigKeyError::RenameWalletFailed; -use crate::error::identity::IdentityError; use crate::error::wallet_config::WalletConfigError; use crate::error::wallet_config::WalletConfigError::{ EnsureWalletConfigDirFailed, LoadWalletConfigFailed, SaveWalletConfigFailed, @@ -304,11 +305,10 @@ pub enum CallSender { // Determine whether the selected Identity // or the provided wallet canister ID should be the Sender of the call. impl CallSender { - pub fn from(wallet: &Option) -> Result { + pub fn from(wallet: &Option) -> Result { let sender = if let Some(id) = wallet { CallSender::Wallet( - Principal::from_text(id) - .map_err(|e| IdentityError::ParsePrincipalFromIdFailed(id.clone(), e))?, + Principal::from_text(id).map_err(|e| ParsePrincipalFromIdFailed(id.clone(), e))?, ) } else { CallSender::SelectedId diff --git a/src/dfx/src/lib/error/mod.rs b/src/dfx/src/lib/error/mod.rs index 7051e55c7f..576c74fa65 100644 --- a/src/dfx/src/lib/error/mod.rs +++ b/src/dfx/src/lib/error/mod.rs @@ -5,7 +5,6 @@ pub mod project; pub use build::BuildError; pub use dfx_core::error::extension::ExtensionError; -pub use dfx_core::error::identity::IdentityError; pub use notify_create_canister::NotifyCreateCanisterError; pub use notify_top_up::NotifyTopUpError; pub use project::ProjectError; From 88164b52fa5bc1ef7dee5b8335c9f3fe8eefe90c Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:51:29 -0700 Subject: [PATCH 14/29] refactor: split up DfxConfigError into method-specific error types (#3384) Eliminates some boxing and makes it more clear what errors are possible for any given method. --- src/dfx-core/src/config/model/dfinity.rs | 54 +++++++++++---------- src/dfx-core/src/error/canister_id_store.rs | 4 +- src/dfx-core/src/error/dfx_config.rs | 45 +++++++++++++---- 3 files changed, 67 insertions(+), 36 deletions(-) diff --git a/src/dfx-core/src/config/model/dfinity.rs b/src/dfx-core/src/config/model/dfinity.rs index 22ba2ad573..c7e8de3cbc 100644 --- a/src/dfx-core/src/config/model/dfinity.rs +++ b/src/dfx-core/src/config/model/dfinity.rs @@ -3,11 +3,17 @@ use crate::config::directories::get_config_dfx_dir_path; use crate::config::model::bitcoin_adapter::BitcoinAdapterLogLevel; use crate::config::model::canister_http_adapter::HttpAdapterLogLevel; -use crate::error::dfx_config::DfxConfigError; -use crate::error::dfx_config::DfxConfigError::{ - CanisterCircularDependency, CanisterNotFound, CanistersFieldDoesNotExist, - GetCanistersWithDependenciesFailed, GetComputeAllocationFailed, GetFreezingThresholdFailed, - GetMemoryAllocationFailed, GetRemoteCanisterIdFailed, PullCanistersSameId, +use crate::error::dfx_config::AddDependenciesError::CanisterCircularDependency; +use crate::error::dfx_config::GetCanisterNamesWithDependenciesError::AddDependenciesFailed; +use crate::error::dfx_config::GetComputeAllocationError::GetComputeAllocationFailed; +use crate::error::dfx_config::GetFreezingThresholdError::GetFreezingThresholdFailed; +use crate::error::dfx_config::GetMemoryAllocationError::GetMemoryAllocationFailed; +use crate::error::dfx_config::GetPullCanistersError::PullCanistersSameId; +use crate::error::dfx_config::GetRemoteCanisterIdError::GetRemoteCanisterIdFailed; +use crate::error::dfx_config::{ + AddDependenciesError, GetCanisterConfigError, GetCanisterNamesWithDependenciesError, + GetComputeAllocationError, GetFreezingThresholdError, GetMemoryAllocationError, + GetPullCanistersError, GetRemoteCanisterIdError, }; use crate::error::load_dfx_config::LoadDfxConfigError; use crate::error::load_dfx_config::LoadDfxConfigError::{ @@ -749,36 +755,34 @@ impl ConfigInterface { pub fn get_canister_names_with_dependencies( &self, some_canister: Option<&str>, - ) -> Result, DfxConfigError> { + ) -> Result, GetCanisterNamesWithDependenciesError> { self.canisters .as_ref() - .ok_or(CanistersFieldDoesNotExist()) + .ok_or(GetCanisterNamesWithDependenciesError::CanistersFieldDoesNotExist()) .and_then(|canister_map| match some_canister { Some(specific_canister) => { let mut names = HashSet::new(); let mut path = vec![]; add_dependencies(canister_map, &mut names, &mut path, specific_canister) .map(|_| names.into_iter().collect()) + .map_err(|err| AddDependenciesFailed(specific_canister.to_string(), err)) } None => Ok(canister_map.keys().cloned().collect()), }) - .map_err(|cause| { - GetCanistersWithDependenciesFailed(some_canister.map(String::from), Box::new(cause)) - }) } pub fn get_remote_canister_id( &self, canister: &str, network: &str, - ) -> Result, DfxConfigError> { + ) -> Result, GetRemoteCanisterIdError> { let maybe_principal = self .get_canister_config(canister) .map_err(|e| { GetRemoteCanisterIdFailed( Box::new(canister.to_string()), Box::new(network.to_string()), - Box::new(e), + e, ) })? .remote @@ -793,17 +797,17 @@ impl ConfigInterface { &self, canister: &str, network: &str, - ) -> Result { + ) -> Result { Ok(self.get_remote_canister_id(canister, network)?.is_some()) } pub fn get_compute_allocation( &self, canister_name: &str, - ) -> Result, DfxConfigError> { + ) -> Result, GetComputeAllocationError> { Ok(self .get_canister_config(canister_name) - .map_err(|e| GetComputeAllocationFailed(canister_name.to_string(), Box::new(e)))? + .map_err(|e| GetComputeAllocationFailed(canister_name.to_string(), e))? .initialization_values .compute_allocation .map(|x| x.0)) @@ -812,10 +816,10 @@ impl ConfigInterface { pub fn get_memory_allocation( &self, canister_name: &str, - ) -> Result, DfxConfigError> { + ) -> Result, GetMemoryAllocationError> { Ok(self .get_canister_config(canister_name) - .map_err(|e| GetMemoryAllocationFailed(canister_name.to_string(), Box::new(e)))? + .map_err(|e| GetMemoryAllocationFailed(canister_name.to_string(), e))? .initialization_values .memory_allocation) } @@ -823,10 +827,10 @@ impl ConfigInterface { pub fn get_freezing_threshold( &self, canister_name: &str, - ) -> Result, DfxConfigError> { + ) -> Result, GetFreezingThresholdError> { Ok(self .get_canister_config(canister_name) - .map_err(|e| GetFreezingThresholdFailed(canister_name.to_string(), Box::new(e)))? + .map_err(|e| GetFreezingThresholdFailed(canister_name.to_string(), e))? .initialization_values .freezing_threshold) } @@ -834,15 +838,15 @@ impl ConfigInterface { fn get_canister_config( &self, canister_name: &str, - ) -> Result<&ConfigCanistersCanister, DfxConfigError> { + ) -> Result<&ConfigCanistersCanister, GetCanisterConfigError> { self.canisters .as_ref() - .ok_or(CanistersFieldDoesNotExist())? + .ok_or(GetCanisterConfigError::CanistersFieldDoesNotExist())? .get(canister_name) - .ok_or_else(|| CanisterNotFound(canister_name.to_string())) + .ok_or_else(|| GetCanisterConfigError::CanisterNotFound(canister_name.to_string())) } - pub fn get_pull_canisters(&self) -> Result, DfxConfigError> { + pub fn get_pull_canisters(&self) -> Result, GetPullCanistersError> { let mut res = BTreeMap::new(); let mut id_to_name: BTreeMap = BTreeMap::new(); if let Some(map) = &self.canisters { @@ -865,7 +869,7 @@ fn add_dependencies( names: &mut HashSet, path: &mut Vec, canister_name: &str, -) -> Result<(), DfxConfigError> { +) -> Result<(), AddDependenciesError> { let inserted = names.insert(String::from(canister_name)); if !inserted { @@ -879,7 +883,7 @@ fn add_dependencies( let canister_config = all_canisters .get(canister_name) - .ok_or_else(|| CanisterNotFound(canister_name.to_string()))?; + .ok_or_else(|| AddDependenciesError::CanisterNotFound(canister_name.to_string()))?; path.push(String::from(canister_name)); diff --git a/src/dfx-core/src/error/canister_id_store.rs b/src/dfx-core/src/error/canister_id_store.rs index 835b84a6ae..3ebc307149 100644 --- a/src/dfx-core/src/error/canister_id_store.rs +++ b/src/dfx-core/src/error/canister_id_store.rs @@ -1,5 +1,5 @@ use crate::error::{ - dfx_config::DfxConfigError, fs::FsError, structured_file::StructuredFileError, + dfx_config::GetPullCanistersError, fs::FsError, structured_file::StructuredFileError, unified_io::UnifiedIoError, }; use thiserror::Error; @@ -37,7 +37,7 @@ pub enum CanisterIdStoreError { }, #[error(transparent)] - DfxConfigError(#[from] DfxConfigError), + GetPullCanistersFailed(#[from] GetPullCanistersError), } impl From for CanisterIdStoreError { diff --git a/src/dfx-core/src/error/dfx_config.rs b/src/dfx-core/src/error/dfx_config.rs index 02bf5c93ad..062ff19a1c 100644 --- a/src/dfx-core/src/error/dfx_config.rs +++ b/src/dfx-core/src/error/dfx_config.rs @@ -2,31 +2,58 @@ use candid::Principal; use thiserror::Error; #[derive(Error, Debug)] -pub enum DfxConfigError { +pub enum AddDependenciesError { #[error("Circular canister dependencies: {}", _0.join(" -> "))] CanisterCircularDependency(Vec), #[error("Canister '{0}' not found in dfx.json.")] CanisterNotFound(String), +} + +#[derive(Error, Debug)] +pub enum GetCanisterConfigError { + #[error("No canisters in the configuration file.")] + CanistersFieldDoesNotExist(), + + #[error("Canister '{0}' not found in dfx.json.")] + CanisterNotFound(String), +} +#[derive(Error, Debug)] +pub enum GetCanisterNamesWithDependenciesError { #[error("No canisters in the configuration file.")] CanistersFieldDoesNotExist(), - #[error("Failed to get canisters with their dependencies (for {}): {1}", _0.as_deref().unwrap_or("all canisters"))] - GetCanistersWithDependenciesFailed(Option, Box), + #[error("Failed to add dependencies for canister '{0}': {1}")] + AddDependenciesFailed(String, AddDependenciesError), +} +#[derive(Error, Debug)] +pub enum GetComputeAllocationError { #[error("Failed to get compute allocation for canister '{0}': {1}")] - GetComputeAllocationFailed(String, Box), + GetComputeAllocationFailed(String, GetCanisterConfigError), +} +#[derive(Error, Debug)] +pub enum GetFreezingThresholdError { #[error("Failed to get freezing threshold for canister '{0}': {1}")] - GetFreezingThresholdFailed(String, Box), + GetFreezingThresholdFailed(String, GetCanisterConfigError), +} +#[derive(Error, Debug)] +pub enum GetMemoryAllocationError { #[error("Failed to get memory allocation for canister '{0}': {1}")] - GetMemoryAllocationFailed(String, Box), - - #[error("Failed to figure out if canister '{0}' has a remote id on network '{1}': {2}")] - GetRemoteCanisterIdFailed(Box, Box, Box), + GetMemoryAllocationFailed(String, GetCanisterConfigError), +} +#[derive(Error, Debug)] +pub enum GetPullCanistersError { #[error("Pull dependencies '{0}' and '{1}' have the same canister ID: {2}")] PullCanistersSameId(String, String, Principal), } + +#[derive(Error, Debug)] +pub enum GetRemoteCanisterIdError { + #[error("Failed to figure out if canister '{0}' has a remote id on network '{1}': {2}")] + GetRemoteCanisterIdFailed(Box, Box, GetCanisterConfigError), +} From 96e619c0f7d9e19075ed39aa60ba9d34333630b3 Mon Sep 17 00:00:00 2001 From: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com> Date: Mon, 25 Sep 2023 22:25:01 +0200 Subject: [PATCH 15/29] chore: update replica version to 91bf38ff (#3386) Updated replica to elected commit 91bf38ff3cb927cb94027d9da513cd15f91a5b04. This incorporates the following executed proposals: - [124795](https://dashboard.internetcomputer.org/proposal/124795) - [124790](https://dashboard.internetcomputer.org/proposal/124790) --- CHANGELOG.md | 4 +- nix/sources.json | 114 +++++++++++++------------- src/dfx/assets/dfx-asset-sources.toml | 74 ++++++++--------- 3 files changed, 97 insertions(+), 95 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e7157bbc6..86546d9f46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,9 +79,11 @@ The verifying side can then unzip the response and will have a valid certificate - https://github.com/dfinity/sdk/pull/3298 - https://github.com/dfinity/sdk/pull/3281 -Updated replica to elected commit d87954601e4b22972899e9957e800406a0a6b929. +Updated replica to elected commit 91bf38ff3cb927cb94027d9da513cd15f91a5b04. This incorporates the following executed proposals: +- [124795](https://dashboard.internetcomputer.org/proposal/124795) +- [124790](https://dashboard.internetcomputer.org/proposal/124790) - [124538](https://dashboard.internetcomputer.org/proposal/124538) - [124537](https://dashboard.internetcomputer.org/proposal/124537) - [124488](https://dashboard.internetcomputer.org/proposal/124488) diff --git a/nix/sources.json b/nix/sources.json index ea7a89ac28..126246f4f7 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -6,62 +6,62 @@ "homepage": "https://rustsec.org", "owner": "RustSec", "repo": "advisory-db", - "rev": "12719bd23b88573977c7ad7fe818b05e8fbc33b3", - "sha256": "14j5q3973wxrzxb2m1zxizrpl6k1zdmpcmlcwskq3bimykq7f5g6", + "rev": "8c5609f192563f844502c6da6b2274696d3966f3", + "sha256": "0adym09c3158yn7zr7zsmdxjxizfyrfhjlwjkm12jw591sr33rax", "type": "tarball", - "url": "https://github.com/RustSec/advisory-db/archive/12719bd23b88573977c7ad7fe818b05e8fbc33b3.tar.gz", + "url": "https://github.com/RustSec/advisory-db/archive/8c5609f192563f844502c6da6b2274696d3966f3.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "canister_sandbox-x86_64-darwin": { "builtin": false, "description": "The canister_sandbox binary. It must be updated together with the replica binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "1ac28v9bihndgppsm05v044cyyx000sjq3z19s8smf10z2vfhkxj", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "06dqva0my0hqraxwj5nqql58j3yry0vnjb8a37syjkz1fvjg78yg", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/canister_sandbox.gz" }, "canister_sandbox-x86_64-linux": { "builtin": false, "description": "The canister_sandbox binary. It must be updated together with the replica binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "02kggmpq5yysjjqa0l6vjpmasd7w5jwlwb8r7lksilmfyxsc1s9r", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0n7axa0ymsj0nkd9iy3vj93b08q682f3r7i2bzg2bc4y96pvqjkv", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/canister_sandbox.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/canister_sandbox.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/canister_sandbox.gz" }, "ic-admin-x86_64-darwin": { "builtin": false, "description": "The ic-admin binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "16d54wpv0xk5ydmwca32h9dxz5d26nb978rj8fm48x1g3s2wlskk", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "1l0xh0f8pw8qmvqdcbssps71i6qinpmicva5yw24dw6ycl66rnlw", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-admin.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-admin.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-admin.gz" }, "ic-admin-x86_64-linux": { "builtin": false, "description": "The ic-admin binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "0kxfyfc4r9dla4w43pcjdk4iy5pyjv9n4l93ry6pgq0ibrxy0a34", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0dh9w6h9cv6ygqxv1b14vlpw32c0mlvf9x1kjihfd449xcbf4rpm", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-admin.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-admin.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-admin.gz" }, "ic-btc-adapter-x86_64-darwin": { "builtin": false, - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "14hc00j3skp6rq7ayq1yrs063h6igmvqk8lj4yk5699jnld13pcq", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "1hd1vlgca2sy37gcafna9l4a1jmv9ndvdzk63084wsf0d8g8agx6", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz" }, "ic-btc-adapter-x86_64-linux": { "builtin": false, - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "1pmhk55c0zb1iyxhv3l0dnv42j5ncnm8jkjsrfyzv6rdc33c1y7d", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "1k0vq2nbm3zjpnhm175h733aidgk7rm34zs8v2cw4f35h4x9n9n6", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz" }, "ic-btc-canister": { @@ -74,36 +74,36 @@ }, "ic-https-outcalls-adapter-x86_64-darwin": { "builtin": false, - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "0v66mh3hkbix9iy51i4grnpr06k98z702zbkyqzwrcxhcfgjwy4g", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "1h0s6gw81f50kr93vnrgpylfq4nzm7ini6f90pbmbfh4r50iawyb", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz" }, "ic-https-outcalls-adapter-x86_64-linux": { "builtin": false, - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "1rxw9airms6ncy37g2wsb5r8m1xsinbd0kwjg0h86phlwmsq3am2", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "1cbjimj3jiy1y427mznwzasv019a68igki0c3nwq7crlm48xbn6n", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz" }, "ic-nns-init-x86_64-darwin": { "builtin": false, "description": "The ic-nns-init binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "1672xqsys4wbsl4bm5lqwh5q05p9ra7zhnb1kcjvp73q9ncld69z", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0r7dy3wa96nf1f1r7dcsp1bhk1si0az6b6mvgj7icni213mf23ag", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-nns-init.gz" }, "ic-nns-init-x86_64-linux": { "builtin": false, "description": "The ic-nns-init binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "170a3hdzd51a44dpjmz67qqdkfkp1538f256a6ni193knvlk3lcm", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "1zh39j3mlqgk0axkpppjzfqb406gmfb5yxi0jvn5xps01cfvsy5i", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-nns-init.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-nns-init.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-nns-init.gz" }, "ic-ref-x86_64-darwin": { @@ -126,18 +126,18 @@ }, "ic-starter-x86_64-darwin": { "builtin": false, - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "0b6m3fq8z2x2d3nfa6jmhszjs6pqa24ixx94qn59kras0s9d2fav", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0vf29dznkba48xjpacanrniqz03aj805k6kgc73inagkn2flmz9n", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-starter.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-starter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/ic-starter.gz" }, "ic-starter-x86_64-linux": { "builtin": false, - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "0achi26937nfhvm55c32md8n3aky06a718j5l2z13bxiycsllw8d", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0dnhb3hgncn9m4430g78pz2yblqmhpnq2z2piqlkjrcb68ssm7b6", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-starter.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-starter.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/ic-starter.gz" }, "icx-proxy-x86_64-darwin": { @@ -187,55 +187,55 @@ "replica-x86_64-darwin": { "builtin": false, "description": "The replica binary. It must be updated together with the canister_sandbox binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "15lvsh1qgz4wl1ps60bqgq6dm0m9jn99a98aqlna8dw0dxxhppvh", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "08sh0rfj8ykmvr74a4hzm3j4kbhrz5d7c3vachsm2jla9dhvd6rl", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/replica.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/replica.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/replica.gz" }, "replica-x86_64-linux": { "builtin": false, "description": "The replica binary. It must be updated together with the canister_sandbox binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "179fm3jsyripw02ni3s9jv99v5jy2bd9pzjrk4jpms6z93sdya49", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0sbzdp9ydmv8lv055gw04gvr6lz3li7ibfnz7f1833qvcqwjacjv", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/replica.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/replica.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/replica.gz" }, "sandbox_launcher-x86_64-darwin": { "builtin": false, "description": "The sandbox_launcher binary. It must be updated together with the replica binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "0xn78w0ks2q0s6iiz7bin4r5c5gs79qi8y583iwgy1c1a5b5iq9i", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "19ma4n918bq7z9avlaazfdrq94xvsdl153kwmaysxw19gz4f01a0", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz" }, "sandbox_launcher-x86_64-linux": { "builtin": false, "description": "The sandbox_launcher binary. It must be updated together with the replica binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "0sh6zk55nsf64irk9g6pdjld8b6nxjz75bks2jdprgv8sb7bbpqp", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "10qq77zwbyas65y2msa55pjhiz24pi9ghhmg6gqldx96hf6z6xkn", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/sandbox_launcher.gz" }, "sns-x86_64-darwin": { "builtin": false, "description": "The sns binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "1ibzmmkfjx4pw0xv12grsdy93040jx7p2dn4bvz7jan4vzm103qy", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0pm8ihnf4hyn9jsnb299lxlv2w8nix2zy7ax93z4wvzi2ngksfi4", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sns.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/sns.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/sns.gz" }, "sns-x86_64-linux": { "builtin": false, "description": "The sns binary.", - "rev": "d87954601e4b22972899e9957e800406a0a6b929", - "sha256": "192xj9gmcg1dk5v9smp687hdfp75pnwvqnlz80v2k6b91ajqqhxk", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "151342zhm4hn9v1h4c9h6hdirjsx5g9ghnqf6k0zlxg6cxl2l1ky", "type": "file", - "url": "https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sns.gz", + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/sns.gz", "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/sns.gz" } } diff --git a/src/dfx/assets/dfx-asset-sources.toml b/src/dfx/assets/dfx-asset-sources.toml index 44fb094107..28d2962055 100644 --- a/src/dfx/assets/dfx-asset-sources.toml +++ b/src/dfx/assets/dfx-asset-sources.toml @@ -1,5 +1,5 @@ # generated by write-dfx-asset-sources.sh -replica-rev = 'd87954601e4b22972899e9957e800406a0a6b929' +replica-rev = '91bf38ff3cb927cb94027d9da513cd15f91a5b04' [x86_64-darwin.ic-ref] url = 'https://download.dfinity.systems/ic-ref/ic-ref-0.0.1-a9f73dba-x86_64-darwin.tar.gz' @@ -10,24 +10,24 @@ url = 'https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binari sha256 = '5783bba5021cf43149bc118789cea29f6462fd97dd78bdb776f8782ea7813d27' [x86_64-darwin.ic-admin] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-admin.gz' -sha256 = '736aca851e2f7444aa4332a3939635a295df5b826228c66bf36576b02f27a599' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-admin.gz' +sha256 = '9cda6c0c65def04604f7456d16ebb5119b188ebe5a2fd6f0ae18f18b1c801dd0' [x86_64-darwin.ic-btc-adapter] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz' -sha256 = '98dd111ab5322553a62792a289777dd1c06180ce3e60af0ecee64e3d24000c92' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-btc-adapter.gz' +sha256 = 'a63f851e6ac0694e101866feb69b4dbbcaa0084dca3ac5de195e0bc51edda1c1' [x86_64-darwin.ic-https-outcalls-adapter] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz' -sha256 = '8f782e9f63b0b3cc3ff6737d01ce47691a90afcd8fc4507c4c3dae0907acc66c' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-https-outcalls-adapter.gz' +sha256 = 'cb731541c904ba55d705c99968e3a9df12eca8bf2fdb3d529ea0b880f8331ac0' [x86_64-darwin.ic-nns-init] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz' -sha256 = '3f9946994d789cbb259b6159f88fcae916800be49896ba08d58b13ed35eee298' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-nns-init.gz' +sha256 = '4f0de1ea08225a168f7cbb9a65be0251870957b89ab593830bce9aa4f8f0ed64' [x86_64-darwin.ic-starter] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/ic-starter.gz' -sha256 = '5b39d192065ae5998ac524f51e8950f81a2dbf86551ae5ec68a28b8fb01bd52c' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-starter.gz' +sha256 = '36fd4a9db0f3291bc7616f9a5900926a808fa3cd563175654744ad697f4bc26d' [x86_64-darwin.motoko] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-Darwin-x86_64-0.9.8.tar.gz' @@ -35,21 +35,21 @@ sha256 = '27b75c676d294f8b8b5b287ab27b2419799d9523c4d7fdcdd92d29dbe6b57494' # The replica and canister_sandbox binaries must have the same revision. [x86_64-darwin.replica] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/replica.gz' -sha256 = '70df0b7b6f8037a42cc50a25959295a982da0c7e7801a36fa09cfc8703d49b96' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/replica.gz' +sha256 = '349bb6614b8a4a5135646a0f765af919ae49e4a81f12454ede757a245d065023' # The replica and canister_sandbox binaries must have the same revision. [x86_64-darwin.canister_sandbox] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz' -sha256 = 'b24fe8b6f820b8aa914ee10f2c3500a07bcf0801bb80aaef7dcdc2b8d24682a9' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/canister_sandbox.gz' +sha256 = 'cfa3f3e476e14fe9f5190a2d6937f0d90f890ac5d816c9bbca18025f81dab819' [x86_64-darwin.sandbox_launcher] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz' -sha256 = '31e15856518105ff781ca87814713afa155632b1719d1fa3d1000b3d0147c776' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/sandbox_launcher.gz' +sha256 = '4005e0c87f29f0aebdaa7c8e1268d3bb938473735f29ba55fa072f149225aaa6' [x86_64-darwin.sns] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-darwin/sns.gz' -sha256 = '1e0f10eadfc42a79fe5ec436714f978080917cd3f989b03be09774e966ad7fc5' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/sns.gz' +sha256 = '243a3d9f15f16f4efe485d1dff458f1671b169a7298965b54cd643e22c8ca85e' [x86_64-darwin.motoko-base] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-base-library.tar.gz' @@ -68,24 +68,24 @@ url = 'https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binari sha256 = '7a5612a1fb7512d22dcd37627a9d626fbc282b172665a832fe2cc2b243789fa1' [x86_64-linux.ic-admin] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-admin.gz' -sha256 = '6428e07b5e11e0778dcf235162d396fe161fc96c92dd413851b4a54c98f3ae4f' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-admin.gz' +sha256 = 'f566e216eb8990e6609433f4e436ad8089c12fdd24acb03b7ede6c96a0e10936' [x86_64-linux.ic-btc-adapter] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz' -sha256 = 'edf8c0c6602d9bfdbdcb5a4e89aa65b64841b66d808e0dbb8f617dc04a99b0de' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-btc-adapter.gz' +sha256 = 'c6269b3a816538c299d8487f326a3ef3b5a8c638b09c50a1bdf28fbaacc01bcc' [x86_64-linux.ic-https-outcalls-adapter] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz' -sha256 = 'a2aa8175e5145e832078924fd0968dba878a72599a8b778667d6e89aa34abce7' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-https-outcalls-adapter.gz' +sha256 = 'd6d8d511a934b383b91d0cc4f922322a05b0b5fadcfe7a04f1c14739648d72b1' [x86_64-linux.ic-nns-init] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-nns-init.gz' -sha256 = '95d131e9b673a410ad51a60887460977bad9303ee657791b212a94f61b1c0a9c' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-nns-init.gz' +sha256 = 'b178bd1d0b40df5eec9620765f96abcf00b2b0fbf2de3bbb02f3615a874c03fe' [x86_64-linux.ic-starter] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/ic-starter.gz' -sha256 = '0d714a35f3b1af11bea045a27094017eaa6151ab62b052ea86ce9e918c889029' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-starter.gz' +sha256 = '669daa35328b6539298e577c81ed8515d3e5c5bfe83c3008a9c932fbe058d036' [x86_64-linux.motoko] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-Linux-x86_64-0.9.8.tar.gz' @@ -93,21 +93,21 @@ sha256 = '513c437ed23e6a7b40f840469766e7e5b321162ff0259ef164ce60377064ca87' # The replica and canister_sandbox binaries must have the same revision. [x86_64-linux.replica] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/replica.gz' -sha256 = '8928dff448dfe87a259959fe9bda125e969dd296498f6805e03766afe5a82e9d' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/replica.gz' +sha256 = '5b322539661b8f81823bdfba154fa4e35393f72380bf52c0a668d7e6d36d7f69' # The replica and canister_sandbox binaries must have the same revision. [x86_64-linux.canister_sandbox] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/canister_sandbox.gz' -sha256 = '39e9c074f7aed2a8273d192d4eb92cfc34adea95db50a0b094dafb826f7d6f0a' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/canister_sandbox.gz' +sha256 = '7b4abcaf499eb025de5f229e3c9c400623b046927bf898dab440eaea81eaea58' [x86_64-linux.sandbox_launcher] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz' -sha256 = '17dfb5ced268bf7c9b147aae72beecd62cd4a86cd7bc347324c6695bcafc066a' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/sandbox_launcher.gz' +sha256 = '7676f38d8326f546f133af42f852bc44fc08e52d45e92a7c315af9c5ff391883' [x86_64-linux.sns] -url = 'https://download.dfinity.systems/ic/d87954601e4b22972899e9957e800406a0a6b929/openssl-static-binaries/x86_64-linux/sns.gz' -sha256 = 'b3438ca50a69992936409f5abcb9bde55cd7e041e6569d76992d3c565f925da4' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/sns.gz' +sha256 = '7e062a6867e675fac1340e5bf8d22b5dcb1c1b34303102c34e16920abf202394' [x86_64-linux.motoko-base] url = 'https://github.com/dfinity/motoko/releases/download/0.9.8/motoko-base-library.tar.gz' From d75dd9337ed716a9de25fae13c82a83e309307a3 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Mon, 25 Sep 2023 14:39:17 -0700 Subject: [PATCH 16/29] refactor: split up FoundationError into method-specific error types (#3385) Separate `FoundationError` into `GetUserHomeError` and `GetCurrentExeError` --- src/dfx-core/src/config/directories.rs | 6 +++--- src/dfx-core/src/error/cache.rs | 7 ++++++- src/dfx-core/src/error/config.rs | 6 +++--- .../src/error/{foundation.rs => get_current_exe.rs} | 5 +---- src/dfx-core/src/error/get_user_home.rs | 7 +++++++ .../identity/get_legacy_credentials_pem_path.rs | 4 ++-- src/dfx-core/src/error/mod.rs | 3 ++- src/dfx-core/src/foundation/mod.rs | 12 +++++++----- 8 files changed, 31 insertions(+), 19 deletions(-) rename src/dfx-core/src/error/{foundation.rs => get_current_exe.rs} (53%) create mode 100644 src/dfx-core/src/error/get_user_home.rs diff --git a/src/dfx-core/src/config/directories.rs b/src/dfx-core/src/config/directories.rs index 8553de3ae6..7c928637ac 100644 --- a/src/dfx-core/src/config/directories.rs +++ b/src/dfx-core/src/config/directories.rs @@ -3,15 +3,15 @@ use crate::error::config::ConfigError::{ DetermineConfigDirectoryFailed, DetermineSharedNetworkDirectoryFailed, EnsureConfigDirectoryExistsFailed, }; -use crate::error::foundation::FoundationError; -use crate::error::foundation::FoundationError::NoHomeInEnvironment; +use crate::error::get_user_home::GetUserHomeError; +use crate::error::get_user_home::GetUserHomeError::NoHomeInEnvironment; #[cfg(not(windows))] use crate::foundation::get_user_home; use crate::fs::composite::ensure_dir_exists; use directories_next::ProjectDirs; use std::path::PathBuf; -pub fn project_dirs() -> Result<&'static ProjectDirs, FoundationError> { +pub fn project_dirs() -> Result<&'static ProjectDirs, GetUserHomeError> { lazy_static::lazy_static! { static ref DIRS: Option = ProjectDirs::from("org", "dfinity", "dfx"); } diff --git a/src/dfx-core/src/error/cache.rs b/src/dfx-core/src/error/cache.rs index 6b2f3a099c..ef24108060 100644 --- a/src/dfx-core/src/error/cache.rs +++ b/src/dfx-core/src/error/cache.rs @@ -2,12 +2,17 @@ use super::{ archive::ArchiveError, fs::FsError, structured_file::StructuredFileError, unified_io::UnifiedIoError, }; +use crate::error::get_current_exe::GetCurrentExeError; +use crate::error::get_user_home::GetUserHomeError; use thiserror::Error; #[derive(Error, Debug)] pub enum CacheError { #[error(transparent)] - FoundationError(#[from] crate::error::foundation::FoundationError), + GetCurrentExeError(#[from] GetCurrentExeError), + + #[error(transparent)] + GetUserHomeError(#[from] GetUserHomeError), #[error(transparent)] UnifiedIo(#[from] crate::error::unified_io::UnifiedIoError), diff --git a/src/dfx-core/src/error/config.rs b/src/dfx-core/src/error/config.rs index 8ca2312784..1121332e42 100644 --- a/src/dfx-core/src/error/config.rs +++ b/src/dfx-core/src/error/config.rs @@ -1,5 +1,5 @@ -use crate::error::foundation::FoundationError; use crate::error::fs::FsError; +use crate::error::get_user_home::GetUserHomeError; use thiserror::Error; #[derive(Error, Debug)] @@ -8,8 +8,8 @@ pub enum ConfigError { EnsureConfigDirectoryExistsFailed(FsError), #[error("Failed to determine config directory path: {0}")] - DetermineConfigDirectoryFailed(FoundationError), + DetermineConfigDirectoryFailed(GetUserHomeError), #[error("Failed to determine shared network data directory: {0}")] - DetermineSharedNetworkDirectoryFailed(FoundationError), + DetermineSharedNetworkDirectoryFailed(GetUserHomeError), } diff --git a/src/dfx-core/src/error/foundation.rs b/src/dfx-core/src/error/get_current_exe.rs similarity index 53% rename from src/dfx-core/src/error/foundation.rs rename to src/dfx-core/src/error/get_current_exe.rs index 0669640d2b..cf74d7d4a4 100644 --- a/src/dfx-core/src/error/foundation.rs +++ b/src/dfx-core/src/error/get_current_exe.rs @@ -1,10 +1,7 @@ use thiserror::Error; #[derive(Error, Debug)] -pub enum FoundationError { - #[error("Cannot find home directory (no HOME environment variable).")] - NoHomeInEnvironment(), - +pub enum GetCurrentExeError { #[error("Failed to identify currently running executable: {0}")] NoCurrentExe(std::io::Error), } diff --git a/src/dfx-core/src/error/get_user_home.rs b/src/dfx-core/src/error/get_user_home.rs new file mode 100644 index 0000000000..7ac0ca2fb5 --- /dev/null +++ b/src/dfx-core/src/error/get_user_home.rs @@ -0,0 +1,7 @@ +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum GetUserHomeError { + #[error("Cannot find home directory (no HOME environment variable).")] + NoHomeInEnvironment(), +} diff --git a/src/dfx-core/src/error/identity/get_legacy_credentials_pem_path.rs b/src/dfx-core/src/error/identity/get_legacy_credentials_pem_path.rs index 731c2a2edc..9d9ed36c84 100644 --- a/src/dfx-core/src/error/identity/get_legacy_credentials_pem_path.rs +++ b/src/dfx-core/src/error/identity/get_legacy_credentials_pem_path.rs @@ -1,8 +1,8 @@ -use crate::error::foundation::FoundationError; +use crate::error::get_user_home::GetUserHomeError; use thiserror::Error; #[derive(Error, Debug)] pub enum GetLegacyCredentialsPemPathError { #[error("Failed to get legacy pem path: {0}")] - GetLegacyPemPathFailed(FoundationError), + GetLegacyPemPathFailed(GetUserHomeError), } diff --git a/src/dfx-core/src/error/mod.rs b/src/dfx-core/src/error/mod.rs index 22f44a4afa..6cd3a42441 100644 --- a/src/dfx-core/src/error/mod.rs +++ b/src/dfx-core/src/error/mod.rs @@ -7,8 +7,9 @@ pub mod config; pub mod dfx_config; pub mod encryption; pub mod extension; -pub mod foundation; pub mod fs; +pub mod get_current_exe; +pub mod get_user_home; pub mod identity; pub mod keyring; pub mod load_dfx_config; diff --git a/src/dfx-core/src/foundation/mod.rs b/src/dfx-core/src/foundation/mod.rs index bf191c04ec..23f9bd577f 100644 --- a/src/dfx-core/src/foundation/mod.rs +++ b/src/dfx-core/src/foundation/mod.rs @@ -1,12 +1,14 @@ -use crate::error::foundation::FoundationError; -use crate::error::foundation::FoundationError::NoHomeInEnvironment; +use crate::error::get_current_exe::GetCurrentExeError; +use crate::error::get_current_exe::GetCurrentExeError::NoCurrentExe; +use crate::error::get_user_home::GetUserHomeError; +use crate::error::get_user_home::GetUserHomeError::NoHomeInEnvironment; use std::ffi::OsString; use std::path::PathBuf; -pub fn get_user_home() -> Result { +pub fn get_user_home() -> Result { std::env::var_os("HOME").ok_or(NoHomeInEnvironment()) } -pub fn get_current_exe() -> Result { - std::env::current_exe().map_err(FoundationError::NoCurrentExe) +pub fn get_current_exe() -> Result { + std::env::current_exe().map_err(NoCurrentExe) } From edf336969ea55e581f0e36d42fdca78ffd7be72b Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:57:34 -0700 Subject: [PATCH 17/29] refactor: rename get_config_dfx_dir_path() -> get_user_dfx_config_dir() (#3388) This method is about `$HOME/.config/dfx/` (on linux/osx. It will be different on Windows) Meaning: "get the .config/dfx directory path" -> "get the user's dfx config directory", Motivation for the change: about to add an error type for this method --- src/dfx-core/src/config/directories.rs | 2 +- src/dfx-core/src/config/model/dfinity.rs | 4 ++-- src/dfx-core/src/identity/identity_manager.rs | 4 ++-- src/dfx-core/src/identity/mod.rs | 4 ++-- src/dfx/src/lib/identity/wallet.rs | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/dfx-core/src/config/directories.rs b/src/dfx-core/src/config/directories.rs index 7c928637ac..f37e0e2ec7 100644 --- a/src/dfx-core/src/config/directories.rs +++ b/src/dfx-core/src/config/directories.rs @@ -23,7 +23,7 @@ pub fn get_shared_network_data_directory(network: &str) -> Result Result { +pub fn get_user_dfx_config_dir() -> Result { let config_root = std::env::var_os("DFX_CONFIG_ROOT"); // dirs-next is not used for *nix to preserve existing paths #[cfg(not(windows))] diff --git a/src/dfx-core/src/config/model/dfinity.rs b/src/dfx-core/src/config/model/dfinity.rs index c7e8de3cbc..4fae8ae0be 100644 --- a/src/dfx-core/src/config/model/dfinity.rs +++ b/src/dfx-core/src/config/model/dfinity.rs @@ -1,6 +1,6 @@ #![allow(dead_code)] #![allow(clippy::should_implement_trait)] // for from_str. why now? -use crate::config::directories::get_config_dfx_dir_path; +use crate::config::directories::get_user_dfx_config_dir; use crate::config::model::bitcoin_adapter::BitcoinAdapterLogLevel; use crate::config::model::canister_http_adapter::HttpAdapterLogLevel; use crate::error::dfx_config::AddDependenciesError::CanisterCircularDependency; @@ -1079,7 +1079,7 @@ impl NetworksConfig { } pub fn new() -> Result { - let dir = get_config_dfx_dir_path().map_err(GetConfigPathFailed)?; + let dir = get_user_dfx_config_dir().map_err(GetConfigPathFailed)?; let path = dir.join("networks.json"); if path.exists() { diff --git a/src/dfx-core/src/identity/identity_manager.rs b/src/dfx-core/src/identity/identity_manager.rs index 29bd8a8209..f1a514c02e 100644 --- a/src/dfx-core/src/identity/identity_manager.rs +++ b/src/dfx-core/src/identity/identity_manager.rs @@ -1,6 +1,6 @@ use super::pem_utils::validate_pem_file; use super::{keyring_mock, WALLET_CONFIG_FILENAME}; -use crate::config::directories::get_config_dfx_dir_path; +use crate::config::directories::get_user_dfx_config_dir; use crate::error::encryption::EncryptionError; use crate::error::encryption::EncryptionError::{NonceGenerationFailed, SaltGenerationFailed}; use crate::error::fs::FsError; @@ -208,7 +208,7 @@ impl IdentityManager { identity_override: &Option, ) -> Result { let config_dfx_dir_path = - get_config_dfx_dir_path().map_err(NewIdentityManagerError::GetConfigDirectoryFailed)?; + get_user_dfx_config_dir().map_err(NewIdentityManagerError::GetConfigDirectoryFailed)?; let identity_root_path = config_dfx_dir_path.join("identity"); let identity_json_path = config_dfx_dir_path.join("identity.json"); diff --git a/src/dfx-core/src/identity/mod.rs b/src/dfx-core/src/identity/mod.rs index c82e568cb8..b9f91258f1 100644 --- a/src/dfx-core/src/identity/mod.rs +++ b/src/dfx-core/src/identity/mod.rs @@ -2,7 +2,7 @@ //! //! Wallets are a map of network-identity, but don't have their own types or manager //! type. -use crate::config::directories::{get_config_dfx_dir_path, get_shared_network_data_directory}; +use crate::config::directories::{get_shared_network_data_directory, get_user_dfx_config_dir}; use crate::error::identity::call_sender_from_wallet::CallSenderFromWalletError; use crate::error::identity::call_sender_from_wallet::CallSenderFromWalletError::ParsePrincipalFromIdFailed; use crate::error::identity::load_pem_identity::LoadPemIdentityError; @@ -225,7 +225,7 @@ impl Identity { original_identity: &str, renamed_identity: &str, ) -> Result<(), MapWalletsToRenamedIdentityError> { - let persistent_wallet_path = get_config_dfx_dir_path() + let persistent_wallet_path = get_user_dfx_config_dir() .map_err(MapWalletsToRenamedIdentityError::GetConfigDirectoryFailed)? .join("identity") .join(original_identity) diff --git a/src/dfx/src/lib/identity/wallet.rs b/src/dfx/src/lib/identity/wallet.rs index 1860f4beb5..93b0c0b907 100644 --- a/src/dfx/src/lib/identity/wallet.rs +++ b/src/dfx/src/lib/identity/wallet.rs @@ -6,7 +6,7 @@ use crate::Environment; use anyhow::{anyhow, bail, Context}; use candid::Principal; use dfx_core::canister::build_wallet_canister; -use dfx_core::config::directories::get_config_dfx_dir_path; +use dfx_core::config::directories::get_user_dfx_config_dir; use dfx_core::config::model::network_descriptor::{NetworkDescriptor, NetworkTypeDescriptor}; use dfx_core::error::wallet_config::WalletConfigError; use dfx_core::error::wallet_config::WalletConfigError::{ @@ -59,7 +59,7 @@ pub fn get_wallet_config_path( Ok(match &network.r#type { NetworkTypeDescriptor::Persistent | NetworkTypeDescriptor::Playground { .. } => { // Using the global - get_config_dfx_dir_path() + get_user_dfx_config_dir() .map_err(|e| { GetWalletConfigPathFailed( Box::new(name.to_string()), From e149ce7a7a9355d4ef4c001661fbf7814431fb31 Mon Sep 17 00:00:00 2001 From: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com> Date: Tue, 26 Sep 2023 18:38:55 +0200 Subject: [PATCH 18/29] build: niv advisory-db: update 8c5609f1 -> b2af5ad8 (#3389) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changelog for advisory-db: Branch: main Commits: [RustSec/advisory-db@8c5609f1...b2af5ad8](https://github.com/RustSec/advisory-db/compare/8c5609f192563f844502c6da6b2274696d3966f3...b2af5ad8564a69a69ca66da8619cb9137926f118) * [`b2af5ad8`](https://github.com/rustsec/advisory-db/commit/b2af5ad8564a69a69ca66da8619cb9137926f118) Update info about CVE-2023-5129 ([RustSec/advisory-db⁠#1793](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1793)) --- nix/sources.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/sources.json b/nix/sources.json index 126246f4f7..952522d22b 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -6,10 +6,10 @@ "homepage": "https://rustsec.org", "owner": "RustSec", "repo": "advisory-db", - "rev": "8c5609f192563f844502c6da6b2274696d3966f3", - "sha256": "0adym09c3158yn7zr7zsmdxjxizfyrfhjlwjkm12jw591sr33rax", + "rev": "b2af5ad8564a69a69ca66da8619cb9137926f118", + "sha256": "1yqmni1myslqhz8jpzxv8zi12p0sb2k9hz7cmbpl8zs7vw7a1c6b", "type": "tarball", - "url": "https://github.com/RustSec/advisory-db/archive/8c5609f192563f844502c6da6b2274696d3966f3.tar.gz", + "url": "https://github.com/RustSec/advisory-db/archive/b2af5ad8564a69a69ca66da8619cb9137926f118.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "canister_sandbox-x86_64-darwin": { From 0249634205fa891341896f21c532b78c24575374 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Tue, 26 Sep 2023 11:05:55 -0700 Subject: [PATCH 19/29] refactor: standardize indentation for e2e test scripts (#3390) We have some e2e test scripts that use 4-space indentation, and others that have 2-space indentation. Within some e2e test script files, we have some tests that use 4-space indentation and others that use 2-space indentation. This PR changes all e2e test scripts to use 2-space indentation, for consistency and not having to wonder what to use when adding a new test. --- e2e/tests-dfx/assetscanister.bash | 1402 ++++++++++---------- e2e/tests-dfx/base.bash | 38 +- e2e/tests-dfx/basic-project.bash | 206 +-- e2e/tests-dfx/bitcoin.bash | 336 ++--- e2e/tests-dfx/bootstrap.bash | 38 +- e2e/tests-dfx/build.bash | 232 ++-- e2e/tests-dfx/build_granular.bash | 124 +- e2e/tests-dfx/build_rust.bash | 8 +- e2e/tests-dfx/call.bash | 174 +-- e2e/tests-dfx/candid_ui.bash | 20 +- e2e/tests-dfx/canister_http.bash | 400 +++--- e2e/tests-dfx/certificate.bash | 118 +- e2e/tests-dfx/certified_info.bash | 36 +- e2e/tests-dfx/create.bash | 320 ++--- e2e/tests-dfx/delete.bash | 48 +- e2e/tests-dfx/deploy.bash | 168 +-- e2e/tests-dfx/deps.bash | 704 +++++----- e2e/tests-dfx/describe_local_network.bash | 142 +- e2e/tests-dfx/dfx_install.bash | 76 +- e2e/tests-dfx/dotenv.bash | 128 +- e2e/tests-dfx/ed25519.bash | 32 +- e2e/tests-dfx/error_context.bash | 212 +-- e2e/tests-dfx/error_diagnosis.bash | 74 +- e2e/tests-dfx/extension.bash | 216 +-- e2e/tests-dfx/fabricate_cycles.bash | 64 +- e2e/tests-dfx/frontend.bash | 130 +- e2e/tests-dfx/generate.bash | 188 +-- e2e/tests-dfx/id.bash | 140 +- e2e/tests-dfx/identity.bash | 278 ++-- e2e/tests-dfx/identity_command.bash | 640 ++++----- e2e/tests-dfx/identity_encryption.bash | 40 +- e2e/tests-dfx/info.bash | 40 +- e2e/tests-dfx/install.bash | 226 ++-- e2e/tests-dfx/inter.bash | 96 +- e2e/tests-dfx/leak.bash | 24 +- e2e/tests-dfx/ledger.bash | 412 +++--- e2e/tests-dfx/metadata.bash | 246 ++-- e2e/tests-dfx/migrate.bash | 42 +- e2e/tests-dfx/mode_reinstall.bash | 202 +-- e2e/tests-dfx/network.bash | 128 +- e2e/tests-dfx/new.bash | 70 +- e2e/tests-dfx/packtool.bash | 88 +- e2e/tests-dfx/ping.bash | 84 +- e2e/tests-dfx/playground.bash | 18 +- e2e/tests-dfx/print.bash | 26 +- e2e/tests-dfx/project_local_network.bash | 214 +-- e2e/tests-dfx/provider.bash | 34 +- e2e/tests-dfx/remote.bash | 494 +++---- e2e/tests-dfx/remote_generate_binding.bash | 124 +- e2e/tests-dfx/request_status.bash | 26 +- e2e/tests-dfx/rust.bash | 78 +- e2e/tests-dfx/schema.bash | 18 +- e2e/tests-dfx/shared_local_network.bash | 186 +-- e2e/tests-dfx/sign_send.bash | 92 +- e2e/tests-dfx/signals.bash | 28 +- e2e/tests-dfx/start.bash | 538 ++++---- e2e/tests-dfx/subcommands.bash | 22 +- e2e/tests-dfx/update_settings.bash | 788 +++++------ e2e/tests-dfx/upgrade.bash | 74 +- e2e/tests-dfx/upgrade_check.bash | 70 +- e2e/tests-dfx/usage.bash | 30 +- e2e/tests-dfx/usage_env.bash | 64 +- e2e/tests-dfx/wallet.bash | 338 ++--- e2e/tests-icx-asset/icx-asset.bash | 304 ++--- e2e/tests-replica/deploy.bash | 110 +- e2e/tests-replica/lifecycle.bash | 90 +- 66 files changed, 6078 insertions(+), 6078 deletions(-) diff --git a/e2e/tests-dfx/assetscanister.bash b/e2e/tests-dfx/assetscanister.bash index 10152e960f..d37ac80e67 100644 --- a/e2e/tests-dfx/assetscanister.bash +++ b/e2e/tests-dfx/assetscanister.bash @@ -3,42 +3,42 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } create_batch() { - reg="batch_id = ([0-9]*) : nat" - assert_command dfx canister call e2e_project_frontend create_batch '(record { })' - # shellcheck disable=SC2154 - [[ "$stdout" =~ $reg ]] - BATCH_ID="${BASH_REMATCH[1]}" - echo "$BATCH_ID" + reg="batch_id = ([0-9]*) : nat" + assert_command dfx canister call e2e_project_frontend create_batch '(record { })' + # shellcheck disable=SC2154 + [[ "$stdout" =~ $reg ]] + BATCH_ID="${BASH_REMATCH[1]}" + echo "$BATCH_ID" } create_chunk() { - batch_id="$1" - reg="chunk_id = ([0-9]*) : nat" - assert_command dfx canister call e2e_project_frontend create_chunk "(record { batch_id = $batch_id; content = vec {} })" - # shellcheck disable=SC2154 - [[ "$stdout" =~ $reg ]] - CHUNK_ID="${BASH_REMATCH[1]}" - echo "$CHUNK_ID" + batch_id="$1" + reg="chunk_id = ([0-9]*) : nat" + assert_command dfx canister call e2e_project_frontend create_chunk "(record { batch_id = $batch_id; content = vec {} })" + # shellcheck disable=SC2154 + [[ "$stdout" =~ $reg ]] + CHUNK_ID="${BASH_REMATCH[1]}" + echo "$CHUNK_ID" } delete_batch() { - assert_command dfx canister call e2e_project_frontend delete_batch "(record { batch_id=$1; })" + assert_command dfx canister call e2e_project_frontend delete_batch "(record { batch_id=$1; })" } check_permission_failure() { - assert_contains "$1" + assert_contains "$1" } @test "commit_batch is atomic" { @@ -695,713 +695,713 @@ check_permission_failure() { } @test "http_request percent-decodes urls" { - install_asset assetscanister - - dfx_start - - echo "contents of file with space in filename" >'src/e2e_project_frontend/assets/filename with space.txt' - echo "contents of file with plus in filename" >'src/e2e_project_frontend/assets/has+plus.txt' - echo "contents of file with percent in filename" >'src/e2e_project_frontend/assets/has%percent.txt' - echo "filename is an ae symbol" >'src/e2e_project_frontend/assets/æ' - echo "filename is percent symbol" >'src/e2e_project_frontend/assets/%' - echo "filename contains question mark" >'src/e2e_project_frontend/assets/filename?withqmark.txt' - dd if=/dev/urandom of='src/e2e_project_frontend/assets/large with spaces.bin' bs=2500000 count=1 - - - dfx deploy - - # decode as expected - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/filename%20with%20space.txt";headers=vec{};method="GET";body=vec{}})' - assert_match "contents of file with space in filename" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%2bplus.txt";headers=vec{};method="GET";body=vec{}})' - assert_match "contents of file with plus in filename" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%2Bplus.txt";headers=vec{};method="GET";body=vec{}})' - assert_match "contents of file with plus in filename" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%%percent.txt";headers=vec{};method="GET";body=vec{}})' - assert_match "contents of file with percent in filename" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%e6";headers=vec{};method="GET";body=vec{}})' - assert_match "filename is an ae symbol" # candid looks like blob "filename is \c3\a6\0a" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%%";headers=vec{};method="GET";body=vec{}})' - assert_match "filename is percent" - # this test ensures url decoding happens after removing the query string - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/filename%3fwithqmark.txt";headers=vec{};method="GET";body=vec{}})' - assert_match "filename contains question mark" - - # these error conditions can't be tested with curl, because something responds first with Bad Request. - # THESE TESTS WERE REMOVED BECAUSE THE RUST CANISTER DOES NOT SUPPORT REJECTING MESSAGES - # TODO: Reenable those tests. - # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%";headers=vec{};method="GET";body=vec{}})' - # assert_match "error decoding url: % must be followed by '%' or two hex digits" - # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%z";headers=vec{};method="GET";body=vec{}})' - # assert_match "error decoding url: % must be followed by two hex digits, but only one was found" - # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%zz";headers=vec{};method="GET";body=vec{}})' - # assert_match "error decoding url: neither character after % is a hex digit" - # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%e";headers=vec{};method="GET";body=vec{}})' - # assert_match "error decoding url: % must be followed by two hex digits, but only one was found" - # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%g6";headers=vec{};method="GET";body=vec{}})' - # assert_match "error decoding url: first character after % is not a hex digit" - # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%ch";headers=vec{};method="GET";body=vec{}})' - # assert_match "error decoding url: second character after % is not a hex digit" - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - - assert_command curl --fail -vv http://localhost:"$PORT"/filename%20with%20space.txt?canisterId="$ID" - # shellcheck disable=SC2154 - assert_match "200 OK" "$stderr" - assert_match "contents of file with space in filename" - - assert_command curl --fail -vv http://localhost:"$PORT"/has%2bplus.txt?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "contents of file with plus in filename" - - assert_command curl --fail -vv http://localhost:"$PORT"/has%%percent.txt?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "contents of file with percent in filename" - - assert_command curl --fail -vv http://localhost:"$PORT"/%e6?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "filename is an ae symbol" - - assert_command curl --fail -vv http://localhost:"$PORT"/%%?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "filename is percent symbol" - - assert_command curl --fail -vv http://localhost:"$PORT"/filename%3fwithqmark.txt?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "filename contains question mark" - - assert_command curl --fail -vv --output lws-curl-output.bin "http://localhost:$PORT/large%20with%20spaces.bin?canisterId=$ID" - diff 'src/e2e_project_frontend/assets/large with spaces.bin' lws-curl-output.bin - - # curl now reports "curl: (3) URL using bad/illegal format or missing URL" so we cannot verify behavior - # assert_command_fail curl --fail -vv --path-as-is http://localhost:"$PORT"/'filename with space'.txt?canisterId="$ID" - # assert_match "400 Bad Request" "$stderr" + install_asset assetscanister + + dfx_start + + echo "contents of file with space in filename" >'src/e2e_project_frontend/assets/filename with space.txt' + echo "contents of file with plus in filename" >'src/e2e_project_frontend/assets/has+plus.txt' + echo "contents of file with percent in filename" >'src/e2e_project_frontend/assets/has%percent.txt' + echo "filename is an ae symbol" >'src/e2e_project_frontend/assets/æ' + echo "filename is percent symbol" >'src/e2e_project_frontend/assets/%' + echo "filename contains question mark" >'src/e2e_project_frontend/assets/filename?withqmark.txt' + dd if=/dev/urandom of='src/e2e_project_frontend/assets/large with spaces.bin' bs=2500000 count=1 + + + dfx deploy + + # decode as expected + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/filename%20with%20space.txt";headers=vec{};method="GET";body=vec{}})' + assert_match "contents of file with space in filename" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%2bplus.txt";headers=vec{};method="GET";body=vec{}})' + assert_match "contents of file with plus in filename" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%2Bplus.txt";headers=vec{};method="GET";body=vec{}})' + assert_match "contents of file with plus in filename" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%%percent.txt";headers=vec{};method="GET";body=vec{}})' + assert_match "contents of file with percent in filename" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%e6";headers=vec{};method="GET";body=vec{}})' + assert_match "filename is an ae symbol" # candid looks like blob "filename is \c3\a6\0a" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%%";headers=vec{};method="GET";body=vec{}})' + assert_match "filename is percent" + # this test ensures url decoding happens after removing the query string + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/filename%3fwithqmark.txt";headers=vec{};method="GET";body=vec{}})' + assert_match "filename contains question mark" + + # these error conditions can't be tested with curl, because something responds first with Bad Request. + # THESE TESTS WERE REMOVED BECAUSE THE RUST CANISTER DOES NOT SUPPORT REJECTING MESSAGES + # TODO: Reenable those tests. + # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%";headers=vec{};method="GET";body=vec{}})' + # assert_match "error decoding url: % must be followed by '%' or two hex digits" + # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%z";headers=vec{};method="GET";body=vec{}})' + # assert_match "error decoding url: % must be followed by two hex digits, but only one was found" + # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%zz";headers=vec{};method="GET";body=vec{}})' + # assert_match "error decoding url: neither character after % is a hex digit" + # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%e";headers=vec{};method="GET";body=vec{}})' + # assert_match "error decoding url: % must be followed by two hex digits, but only one was found" + # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%g6";headers=vec{};method="GET";body=vec{}})' + # assert_match "error decoding url: first character after % is not a hex digit" + # assert_command_fail dfx canister call --query e2e_project_frontend http_request '(record{url="/%ch";headers=vec{};method="GET";body=vec{}})' + # assert_match "error decoding url: second character after % is not a hex digit" + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + + assert_command curl --fail -vv http://localhost:"$PORT"/filename%20with%20space.txt?canisterId="$ID" + # shellcheck disable=SC2154 + assert_match "200 OK" "$stderr" + assert_match "contents of file with space in filename" + + assert_command curl --fail -vv http://localhost:"$PORT"/has%2bplus.txt?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "contents of file with plus in filename" + + assert_command curl --fail -vv http://localhost:"$PORT"/has%%percent.txt?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "contents of file with percent in filename" + + assert_command curl --fail -vv http://localhost:"$PORT"/%e6?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "filename is an ae symbol" + + assert_command curl --fail -vv http://localhost:"$PORT"/%%?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "filename is percent symbol" + + assert_command curl --fail -vv http://localhost:"$PORT"/filename%3fwithqmark.txt?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "filename contains question mark" + + assert_command curl --fail -vv --output lws-curl-output.bin "http://localhost:$PORT/large%20with%20spaces.bin?canisterId=$ID" + diff 'src/e2e_project_frontend/assets/large with spaces.bin' lws-curl-output.bin + + # curl now reports "curl: (3) URL using bad/illegal format or missing URL" so we cannot verify behavior + # assert_command_fail curl --fail -vv --path-as-is http://localhost:"$PORT"/'filename with space'.txt?canisterId="$ID" + # assert_match "400 Bad Request" "$stderr" } @test "generates gzipped content encoding for .js files" { - install_asset assetscanister - for i in $(seq 1 400); do - echo "some easily duplicate text $i" >>src/e2e_project_frontend/assets/notreally.js - done - - dfx_start - assert_command dfx deploy - dfx canister call --query e2e_project_frontend list '(record{})' - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - - assert_command curl -v --output not-compressed http://localhost:"$PORT"/notreally.js?canisterId="$ID" - assert_not_match "content-encoding:" - diff not-compressed src/e2e_project_frontend/assets/notreally.js - - assert_command curl -v --output encoded-compressed-1.gz -H "Accept-Encoding: gzip" http://localhost:"$PORT"/notreally.js?canisterId="$ID" - assert_match "content-encoding: gzip" - gunzip encoded-compressed-1.gz - diff encoded-compressed-1 src/e2e_project_frontend/assets/notreally.js - - # should split up accept-encoding lines with more than one encoding - assert_command curl -v --output encoded-compressed-2.gz -H "Accept-Encoding: gzip, deflate, br" http://localhost:"$PORT"/notreally.js?canisterId="$ID" - assert_match "content-encoding: gzip" - gunzip encoded-compressed-2.gz - diff encoded-compressed-2 src/e2e_project_frontend/assets/notreally.js + install_asset assetscanister + for i in $(seq 1 400); do + echo "some easily duplicate text $i" >>src/e2e_project_frontend/assets/notreally.js + done + + dfx_start + assert_command dfx deploy + dfx canister call --query e2e_project_frontend list '(record{})' + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + + assert_command curl -v --output not-compressed http://localhost:"$PORT"/notreally.js?canisterId="$ID" + assert_not_match "content-encoding:" + diff not-compressed src/e2e_project_frontend/assets/notreally.js + + assert_command curl -v --output encoded-compressed-1.gz -H "Accept-Encoding: gzip" http://localhost:"$PORT"/notreally.js?canisterId="$ID" + assert_match "content-encoding: gzip" + gunzip encoded-compressed-1.gz + diff encoded-compressed-1 src/e2e_project_frontend/assets/notreally.js + + # should split up accept-encoding lines with more than one encoding + assert_command curl -v --output encoded-compressed-2.gz -H "Accept-Encoding: gzip, deflate, br" http://localhost:"$PORT"/notreally.js?canisterId="$ID" + assert_match "content-encoding: gzip" + gunzip encoded-compressed-2.gz + diff encoded-compressed-2 src/e2e_project_frontend/assets/notreally.js } @test "leaves in place files that were already installed" { - install_asset assetscanister - dd if=/dev/urandom of=src/e2e_project_frontend/assets/asset1.bin bs=400000 count=1 - dd if=/dev/urandom of=src/e2e_project_frontend/assets/asset2.bin bs=400000 count=1 + install_asset assetscanister + dd if=/dev/urandom of=src/e2e_project_frontend/assets/asset1.bin bs=400000 count=1 + dd if=/dev/urandom of=src/e2e_project_frontend/assets/asset2.bin bs=400000 count=1 - dfx_start - assert_command dfx deploy + dfx_start + assert_command dfx deploy - assert_match '/asset1.bin 1/1' - assert_match '/asset2.bin 1/1' + assert_match '/asset1.bin 1/1' + assert_match '/asset2.bin 1/1' - dd if=/dev/urandom of=src/e2e_project_frontend/assets/asset2.bin bs=400000 count=1 + dd if=/dev/urandom of=src/e2e_project_frontend/assets/asset2.bin bs=400000 count=1 - assert_command dfx deploy - assert_match '/asset1.bin.*is already installed' - assert_match '/asset2.bin 1/1' + assert_command dfx deploy + assert_match '/asset1.bin.*is already installed' + assert_match '/asset2.bin 1/1' } @test "unsets asset encodings that are removed from project" { - install_asset assetscanister + install_asset assetscanister - dfx_start - dfx deploy + dfx_start + dfx deploy - assert_command dfx canister call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="text/plain"; content_encoding="arbitrary"; content=blob "content encoded in another way!"})' + assert_command dfx canister call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="text/plain"; content_encoding="arbitrary"; content=blob "content encoded in another way!"})' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' - dfx deploy + dfx deploy - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' - assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' + assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' } @test "verifies sha256" { - install_asset assetscanister + install_asset assetscanister - dfx_start - dfx deploy + dfx_start + dfx deploy - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/text-with-newlines.txt";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/text-with-newlines.txt";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend get_chunk '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 243; 191; 114; 177; 83; 18; 144; 121; 131; 38; 109; 183; 89; 244; 120; 136; 53; 187; 14; 74; 8; 112; 86; 100; 115; 8; 179; 155; 69; 78; 95; 160; }})' - assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0})' - assert_match 'sha256 required' - assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 88; 87; 86; }})' - assert_match 'sha256 mismatch' + assert_command dfx canister call --query e2e_project_frontend get_chunk '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 243; 191; 114; 177; 83; 18; 144; 121; 131; 38; 109; 183; 89; 244; 120; 136; 53; 187; 14; 74; 8; 112; 86; 100; 115; 8; 179; 155; 69; 78; 95; 160; }})' + assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0})' + assert_match 'sha256 required' + assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 88; 87; 86; }})' + assert_match 'sha256 mismatch' - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 243; 191; 114; 177; 83; 18; 144; 121; 131; 38; 109; 183; 89; 244; 120; 136; 53; 187; 14; 74; 8; 112; 86; 100; 115; 8; 179; 155; 69; 78; 95; 160; }})' - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt blob "\f3\bf\72\b1\53\12\90\79\83\26\6d\b7\59\f4\78\88\35\bb\0e\4a\08\70\56\64\73\08\b3\9b\45\4e\5f\a0"})' - assert_command_fail dfx canister call --query e2e_project_frontend http_request_streaming_callback '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 88; 87; 86; }})' - assert_match 'sha256 mismatch' + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 243; 191; 114; 177; 83; 18; 144; 121; 131; 38; 109; 183; 89; 244; 120; 136; 53; 187; 14; 74; 8; 112; 86; 100; 115; 8; 179; 155; 69; 78; 95; 160; }})' + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt blob "\f3\bf\72\b1\53\12\90\79\83\26\6d\b7\59\f4\78\88\35\bb\0e\4a\08\70\56\64\73\08\b3\9b\45\4e\5f\a0"})' + assert_command_fail dfx canister call --query e2e_project_frontend http_request_streaming_callback '(record{key="/text-with-newlines.txt";content_encoding="identity";index=0;sha256=opt vec { 88; 87; 86; }})' + assert_match 'sha256 mismatch' } @test "can store and retrieve assets by key" { - install_asset assetscanister + install_asset assetscanister - dfx_start - dfx canister create --all - dfx build - dfx canister install e2e_project_frontend + dfx_start + dfx canister create --all + dfx build + dfx canister install e2e_project_frontend - assert_command dfx canister call --query e2e_project_frontend retrieve '("/binary/noise.txt")' --output idl - assert_eq '(blob "\b8\01 \80\0aw12 \00xy\0aKL\0b\0ajk")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("/binary/noise.txt")' --output idl + assert_eq '(blob "\b8\01 \80\0aw12 \00xy\0aKL\0b\0ajk")' - assert_command dfx canister call --query e2e_project_frontend retrieve '("/text-with-newlines.txt")' --output idl - assert_eq '(blob "cherries\0ait\27s cherry season\0aCHERRIES")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("/text-with-newlines.txt")' --output idl + assert_eq '(blob "cherries\0ait\27s cherry season\0aCHERRIES")' - assert_command dfx canister call --update e2e_project_frontend store '(record{key="AA"; content_type="text/plain"; content_encoding="identity"; content=blob "hello, world!"})' - assert_eq '()' - assert_command dfx canister call --update e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' - assert_eq '()' + assert_command dfx canister call --update e2e_project_frontend store '(record{key="AA"; content_type="text/plain"; content_encoding="identity"; content=blob "hello, world!"})' + assert_eq '()' + assert_command dfx canister call --update e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' + assert_eq '()' - assert_command dfx canister call --query e2e_project_frontend retrieve '("B")' --output idl - assert_eq '(blob "XWV")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("B")' --output idl + assert_eq '(blob "XWV")' - assert_command dfx canister call --query e2e_project_frontend retrieve '("AA")' --output idl - assert_eq '(blob "hello, world!")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("AA")' --output idl + assert_eq '(blob "hello, world!")' - assert_command dfx canister call --query e2e_project_frontend retrieve '("B")' --output idl - assert_eq '(blob "XWV")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("B")' --output idl + assert_eq '(blob "XWV")' - assert_command_fail dfx canister call --query e2e_project_frontend retrieve '("C")' + assert_command_fail dfx canister call --query e2e_project_frontend retrieve '("C")' } @test "asset canister supports http requests" { - install_asset assetscanister - - dfx_start - dfx canister create --all - dfx build - dfx canister install e2e_project_frontend - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - assert_command curl http://localhost:"$PORT"/text-with-newlines.txt?canisterId="$ID" - # shellcheck disable=SC2154 - assert_eq "cherries + install_asset assetscanister + + dfx_start + dfx canister create --all + dfx build + dfx canister install e2e_project_frontend + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + assert_command curl http://localhost:"$PORT"/text-with-newlines.txt?canisterId="$ID" + # shellcheck disable=SC2154 + assert_eq "cherries it's cherry season CHERRIES" "$stdout" } @test 'can store arbitrarily large files' { - install_asset assetscanister + install_asset assetscanister - # make a big file with deterministic contents (a fixed hash) - for a in $(seq 1 20); do - echo "$a" >>src/e2e_project_frontend/assets/large-asset.bin - dd if=/dev/zero bs=300000 count=1 >> src/e2e_project_frontend/assets/large-asset.bin - done + # make a big file with deterministic contents (a fixed hash) + for a in $(seq 1 20); do + echo "$a" >>src/e2e_project_frontend/assets/large-asset.bin + dd if=/dev/zero bs=300000 count=1 >> src/e2e_project_frontend/assets/large-asset.bin + done - dfx_start - dfx canister create --all - dfx build - dfx canister install e2e_project_frontend + dfx_start + dfx canister create --all + dfx build + dfx canister install e2e_project_frontend - # retrieve() refuses to serve just part of an asset - assert_command_fail dfx canister call --query e2e_project_frontend retrieve '("/large-asset.bin")' - assert_match 'Asset too large.' + # retrieve() refuses to serve just part of an asset + assert_command_fail dfx canister call --query e2e_project_frontend retrieve '("/large-asset.bin")' + assert_match 'Asset too large.' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/large-asset.bin";accept_encodings=vec{"identity"}})' - assert_match 'total_length = 6_000_051' - assert_match 'content_type = "application/octet-stream"' - assert_match 'content_encoding = "identity"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/large-asset.bin";accept_encodings=vec{"identity"}})' + assert_match 'total_length = 6_000_051' + assert_match 'content_type = "application/octet-stream"' + assert_match 'content_encoding = "identity"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/large-asset.bin";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/large-asset.bin";accept_encodings=vec{"identity"}})' - assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=2;sha256=opt blob "\4f\a1\0f\f7\41\9f\0e\18\81\44\8f\d5\6e\2c\6a\a1\89\a8\f5\21\92\d4\87\f5\9b\4b\a2\3c\52\eb\e5\b7"})' - assert_contains "sha256 mismatch" + assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=2;sha256=opt blob "\4f\a1\0f\f7\41\9f\0e\18\81\44\8f\d5\6e\2c\6a\a1\89\a8\f5\21\92\d4\87\f5\9b\4b\a2\3c\52\eb\e5\b7"})' + assert_contains "sha256 mismatch" - assert_command dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=2;sha256=opt blob "\4f\a1\0f\f7\41\9c\0e\18\81\44\8f\d5\6e\2c\6a\a1\89\a8\f5\21\92\d4\87\f5\9b\4b\a2\3c\52\eb\e5\b7"})' + assert_command dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=2;sha256=opt blob "\4f\a1\0f\f7\41\9c\0e\18\81\44\8f\d5\6e\2c\6a\a1\89\a8\f5\21\92\d4\87\f5\9b\4b\a2\3c\52\eb\e5\b7"})' - assert_command dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=3;sha256=opt blob "\4f\a1\0f\f7\41\9c\0e\18\81\44\8f\d5\6e\2c\6a\a1\89\a8\f5\21\92\d4\87\f5\9b\4b\a2\3c\52\eb\e5\b7"})' - assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=4})' + assert_command dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=3;sha256=opt blob "\4f\a1\0f\f7\41\9c\0e\18\81\44\8f\d5\6e\2c\6a\a1\89\a8\f5\21\92\d4\87\f5\9b\4b\a2\3c\52\eb\e5\b7"})' + assert_command_fail dfx canister call --query e2e_project_frontend get_chunk '(record{key="/large-asset.bin";content_encoding="identity";index=4})' - PORT=$(get_webserver_port) - CANISTER_ID=$(dfx canister id e2e_project_frontend) - curl -v --output curl-output.bin "http://localhost:$PORT/large-asset.bin?canisterId=$CANISTER_ID" - diff src/e2e_project_frontend/assets/large-asset.bin curl-output.bin + PORT=$(get_webserver_port) + CANISTER_ID=$(dfx canister id e2e_project_frontend) + curl -v --output curl-output.bin "http://localhost:$PORT/large-asset.bin?canisterId=$CANISTER_ID" + diff src/e2e_project_frontend/assets/large-asset.bin curl-output.bin } @test "list() return assets" { - install_asset assetscanister - - dfx_start - dfx canister create --all - dfx build - dfx canister install e2e_project_frontend - - assert_command dfx canister call --query e2e_project_frontend list '(record{})' - assert_match '"/binary/noise.txt"' - assert_match 'length = 19' - assert_match '"/text-with-newlines.txt"' - assert_match 'length = 36' - assert_match '"/sample-asset.txt"' - assert_match 'length = 24' + install_asset assetscanister + + dfx_start + dfx canister create --all + dfx build + dfx canister install e2e_project_frontend + + assert_command dfx canister call --query e2e_project_frontend list '(record{})' + assert_match '"/binary/noise.txt"' + assert_match 'length = 19' + assert_match '"/text-with-newlines.txt"' + assert_match 'length = 36' + assert_match '"/sample-asset.txt"' + assert_match 'length = 24' } @test "identifies content type" { - install_asset assetscanister - - dfx_start - dfx canister create --all - - touch src/e2e_project_frontend/assets/index.html - touch src/e2e_project_frontend/assets/logo.png - touch src/e2e_project_frontend/assets/index.js - touch src/e2e_project_frontend/assets/main.css - touch src/e2e_project_frontend/assets/index.js.map - touch src/e2e_project_frontend/assets/index.js.LICENSE.txt - touch src/e2e_project_frontend/assets/index.js.LICENSE - - dfx build - dfx canister install e2e_project_frontend - - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.html";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "text/html"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/logo.png";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "image/png"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "application/javascript"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "text/plain"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/main.css";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "text/css"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js.map";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "text/plain"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js.LICENSE.txt";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "text/plain"' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js.LICENSE";accept_encodings=vec{"identity"}})' - assert_match 'content_type = "application/octet-stream"' + install_asset assetscanister + + dfx_start + dfx canister create --all + + touch src/e2e_project_frontend/assets/index.html + touch src/e2e_project_frontend/assets/logo.png + touch src/e2e_project_frontend/assets/index.js + touch src/e2e_project_frontend/assets/main.css + touch src/e2e_project_frontend/assets/index.js.map + touch src/e2e_project_frontend/assets/index.js.LICENSE.txt + touch src/e2e_project_frontend/assets/index.js.LICENSE + + dfx build + dfx canister install e2e_project_frontend + + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.html";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "text/html"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/logo.png";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "image/png"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "application/javascript"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "text/plain"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/main.css";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "text/css"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js.map";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "text/plain"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js.LICENSE.txt";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "text/plain"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/index.js.LICENSE";accept_encodings=vec{"identity"}})' + assert_match 'content_type = "application/octet-stream"' } @test "deletes assets that are removed from project" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - touch src/e2e_project_frontend/assets/will-delete-this.txt - dfx deploy + touch src/e2e_project_frontend/assets/will-delete-this.txt + dfx deploy - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend list '(record{})' - assert_match '"/will-delete-this.txt"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend list '(record{})' + assert_match '"/will-delete-this.txt"' - rm src/e2e_project_frontend/assets/will-delete-this.txt - dfx deploy + rm src/e2e_project_frontend/assets/will-delete-this.txt + dfx deploy - assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend list '(record{})' - assert_not_match '"/will-delete-this.txt"' + assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend list '(record{})' + assert_not_match '"/will-delete-this.txt"' } @test "asset configuration via .ic-assets.json5" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - touch src/e2e_project_frontend/assets/ignored.txt - touch src/e2e_project_frontend/assets/index.html - touch src/e2e_project_frontend/assets/.hidden.txt + touch src/e2e_project_frontend/assets/ignored.txt + touch src/e2e_project_frontend/assets/index.html + touch src/e2e_project_frontend/assets/.hidden.txt - mkdir src/e2e_project_frontend/assets/.well-known - touch src/e2e_project_frontend/assets/.well-known/thing.json - touch src/e2e_project_frontend/assets/.well-known/file.txt + mkdir src/e2e_project_frontend/assets/.well-known + touch src/e2e_project_frontend/assets/.well-known/thing.json + touch src/e2e_project_frontend/assets/.well-known/file.txt - echo '[ - { - "match": "ignored.txt", - "ignore": true - }, - { - "match": "*", - "cache": { - "max_age": 500 - }, - "headers": { - "x-header": "x-value" - } - }, - { - "match": ".*", - "ignore": false, - "cache": { - "max_age": 888 - }, - "headers": { - "x-extra-header": "x-extra-value" - } + echo '[ + { + "match": "ignored.txt", + "ignore": true + }, + { + "match": "*", + "cache": { + "max_age": 500 }, - { - "match": "ignored.txt", - "ignore": true + "headers": { + "x-header": "x-value" } - ]' > src/e2e_project_frontend/assets/.ic-assets.json5 - echo '[ - { - "match": "*", - "headers": { - "x-well-known-header": "x-well-known-value" - } - }, - { - "match": "*.json", - "cache": { - "max_age": 1000 - } + }, + { + "match": ".*", + "ignore": false, + "cache": { + "max_age": 888 }, - { - "match": "file.txt", - "headers": null + "headers": { + "x-extra-header": "x-extra-value" } - ]' > src/e2e_project_frontend/assets/.well-known/.ic-assets.json5 - - dfx deploy - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - - assert_command curl --head "http://localhost:$PORT/.well-known/thing.json?canisterId=$ID" - assert_match "x-extra-header: x-extra-value" - assert_match "x-header: x-value" - assert_match "x-well-known-header: x-well-known-value" - assert_match "cache-control: max-age=1000" - - assert_command curl --head "http://localhost:$PORT/.well-known/file.txt?canisterId=$ID" - assert_match "cache-control: max-age=888" - assert_not_match "x-well-known-header: x-well-known-value" - assert_not_match "x-header: x-value" - assert_not_match "x-extra-header: x-extra-value" - - assert_command curl --head "http://localhost:$PORT/index.html?canisterId=$ID" - assert_match "cache-control: max-age=500" - assert_match "x-header: x-value" - assert_not_match "x-extra-header: x-extra-value" - - assert_command curl --head "http://localhost:$PORT/.hidden.txt?canisterId=$ID" - assert_match "cache-control: max-age=888" - assert_match "x-header: x-value" - assert_match "x-extra-header: x-extra-value" - - # assert_command curl -vv "http://localhost:$PORT/ignored.txt?canisterId=$ID" - # assert_match "404 Not Found" - # from logs: - # Staging contents of new and changed assets: - # /sample-asset.txt 1/1 (24 bytes) - # /text-with-newlines.txt 1/1 (36 bytes) - # /.well-known/file.txt 1/1 (0 bytes) - # /index.html 1/1 (0 bytes) - # /.hidden.txt 1/1 (0 bytes) - # /binary/noise.txt 1/1 (19 bytes) - # /.well-known/thing.json 1/1 (0 bytes) + }, + { + "match": "ignored.txt", + "ignore": true + } + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + echo '[ + { + "match": "*", + "headers": { + "x-well-known-header": "x-well-known-value" + } + }, + { + "match": "*.json", + "cache": { + "max_age": 1000 + } + }, + { + "match": "file.txt", + "headers": null + } + ]' > src/e2e_project_frontend/assets/.well-known/.ic-assets.json5 + + dfx deploy + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + + assert_command curl --head "http://localhost:$PORT/.well-known/thing.json?canisterId=$ID" + assert_match "x-extra-header: x-extra-value" + assert_match "x-header: x-value" + assert_match "x-well-known-header: x-well-known-value" + assert_match "cache-control: max-age=1000" + + assert_command curl --head "http://localhost:$PORT/.well-known/file.txt?canisterId=$ID" + assert_match "cache-control: max-age=888" + assert_not_match "x-well-known-header: x-well-known-value" + assert_not_match "x-header: x-value" + assert_not_match "x-extra-header: x-extra-value" + + assert_command curl --head "http://localhost:$PORT/index.html?canisterId=$ID" + assert_match "cache-control: max-age=500" + assert_match "x-header: x-value" + assert_not_match "x-extra-header: x-extra-value" + + assert_command curl --head "http://localhost:$PORT/.hidden.txt?canisterId=$ID" + assert_match "cache-control: max-age=888" + assert_match "x-header: x-value" + assert_match "x-extra-header: x-extra-value" + + # assert_command curl -vv "http://localhost:$PORT/ignored.txt?canisterId=$ID" + # assert_match "404 Not Found" + # from logs: + # Staging contents of new and changed assets: + # /sample-asset.txt 1/1 (24 bytes) + # /text-with-newlines.txt 1/1 (36 bytes) + # /.well-known/file.txt 1/1 (0 bytes) + # /index.html 1/1 (0 bytes) + # /.hidden.txt 1/1 (0 bytes) + # /binary/noise.txt 1/1 (19 bytes) + # /.well-known/thing.json 1/1 (0 bytes) } @test "asset configuration via .ic-assets.json5 - nested dot directories" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - touch src/e2e_project_frontend/assets/thing.json - touch src/e2e_project_frontend/assets/.ignored-by-defualt.txt + touch src/e2e_project_frontend/assets/thing.json + touch src/e2e_project_frontend/assets/.ignored-by-defualt.txt - mkdir src/e2e_project_frontend/assets/.well-known - touch src/e2e_project_frontend/assets/.well-known/thing.json + mkdir src/e2e_project_frontend/assets/.well-known + touch src/e2e_project_frontend/assets/.well-known/thing.json - mkdir src/e2e_project_frontend/assets/.well-known/.hidden - touch src/e2e_project_frontend/assets/.well-known/.hidden/ignored.txt + mkdir src/e2e_project_frontend/assets/.well-known/.hidden + touch src/e2e_project_frontend/assets/.well-known/.hidden/ignored.txt - mkdir src/e2e_project_frontend/assets/.well-known/.another-hidden - touch src/e2e_project_frontend/assets/.well-known/.another-hidden/ignored.txt + mkdir src/e2e_project_frontend/assets/.well-known/.another-hidden + touch src/e2e_project_frontend/assets/.well-known/.another-hidden/ignored.txt - echo '[ - { - "match": ".well-known", - "ignore": false - }, - { - "match": "**/*", - "cache": { "max_age": 2000 } - } + echo '[ + { + "match": ".well-known", + "ignore": false + }, + { + "match": "**/*", + "cache": { "max_age": 2000 } + } ]' > src/e2e_project_frontend/assets/.ic-assets.json5 echo '[ - { - "match": "*", - "headers": { - "x-header": "x-value" - } - }, - { - "match": ".hidden", - "ignore": true - } - ]' > src/e2e_project_frontend/assets/.well-known/.ic-assets.json5 - echo '[ - { - "match": "*", - "ignore": false + { + "match": "*", + "headers": { + "x-header": "x-value" } + }, + { + "match": ".hidden", + "ignore": true + } + ]' > src/e2e_project_frontend/assets/.well-known/.ic-assets.json5 + echo '[ + { + "match": "*", + "ignore": false + } ]' > src/e2e_project_frontend/assets/.well-known/.hidden/.ic-assets.json5 echo '[ - { - "match": "*", - "ignore": false - } - ]' > src/e2e_project_frontend/assets/.well-known/.another-hidden/.ic-assets.json5 + { + "match": "*", + "ignore": false + } + ]' > src/e2e_project_frontend/assets/.well-known/.another-hidden/.ic-assets.json5 - dfx deploy + dfx deploy - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) - assert_command curl --head "http://localhost:$PORT/thing.json?canisterId=$ID" - assert_match "cache-control: max-age=2000" - assert_command curl --head "http://localhost:$PORT/.well-known/thing.json?canisterId=$ID" - assert_match "cache-control: max-age=2000" - assert_match "x-header: x-value" + assert_command curl --head "http://localhost:$PORT/thing.json?canisterId=$ID" + assert_match "cache-control: max-age=2000" + assert_command curl --head "http://localhost:$PORT/.well-known/thing.json?canisterId=$ID" + assert_match "cache-control: max-age=2000" + assert_match "x-header: x-value" - assert_command curl -vv "http://localhost:$PORT/.ignored-by-defualt.txt?canisterId=$ID" - assert_match "404 Not Found" - assert_command curl -vv "http://localhost:$PORT/.well-known/.hidden/ignored.txt?canisterId=$ID" - assert_match "404 Not Found" - assert_command curl -vv "http://localhost:$PORT/.well-known/.another-hidden/ignored.txt?canisterId=$ID" - assert_match "404 Not Found" + assert_command curl -vv "http://localhost:$PORT/.ignored-by-defualt.txt?canisterId=$ID" + assert_match "404 Not Found" + assert_command curl -vv "http://localhost:$PORT/.well-known/.hidden/ignored.txt?canisterId=$ID" + assert_match "404 Not Found" + assert_command curl -vv "http://localhost:$PORT/.well-known/.another-hidden/ignored.txt?canisterId=$ID" + assert_match "404 Not Found" } @test "asset configuration via .ic-assets.json5 - overwriting default headers" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - touch src/e2e_project_frontend/assets/thing.json + touch src/e2e_project_frontend/assets/thing.json - echo '[ - { - "match": "thing.json", - "cache": { "max_age": 2000 }, - "headers": { - "Content-Encoding": "my-encoding", - "Content-Type": "x-type", - "Cache-Control": "custom", - "etag": "my-etag" - } + echo '[ + { + "match": "thing.json", + "cache": { "max_age": 2000 }, + "headers": { + "Content-Encoding": "my-encoding", + "Content-Type": "x-type", + "Cache-Control": "custom", + "etag": "my-etag" } - ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + } + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 - dfx deploy + dfx deploy - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) - assert_command curl --head "http://localhost:$PORT/thing.json?canisterId=$ID" - assert_match "cache-control: custom" - assert_match "content-encoding: my-encoding" - assert_match "content-type: x-type" - assert_not_match "etag: my-etag" - assert_match "etag: \"[a-z0-9]{64}\"" + assert_command curl --head "http://localhost:$PORT/thing.json?canisterId=$ID" + assert_match "cache-control: custom" + assert_match "content-encoding: my-encoding" + assert_match "content-type: x-type" + assert_not_match "etag: my-etag" + assert_match "etag: \"[a-z0-9]{64}\"" } @test "aliasing rules: to .html or /index.html" { - echo "test alias file" >'src/e2e_project_frontend/assets/test_alias_file.html' - mkdir 'src/e2e_project_frontend/assets/index_test' - echo "test index file" >'src/e2e_project_frontend/assets/index_test/index.html' - - TEST_ALIAS_SHA256="blob \"\67\fb\58\e3\ea\45\56\10\5d\d5\a4\08\0e\8d\38\6e\0c\5f\9b\f5\f5\05\dd\0f\4a\2b\d8\65\ec\27\c6\06\"" - TEST_INDEX_SHA256="blob \"\2c\0c\c1\2a\96\c6\79\8c\34\be\fd\8f\6f\df\ba\2f\39\57\8e\15\c0\f8\69\2f\54\da\df\06\ee\98\08\f5\"" - - dfx_start - dfx deploy - - # decode as expected - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/test_alias_file.html";headers=vec{};method="GET";body=vec{}})' - assert_match "test alias file" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/test_alias_file";headers=vec{};method="GET";body=vec{}})' - assert_match "test alias file" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/index_test";headers=vec{};method="GET";body=vec{}})' - assert_match "test index file" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "test alias file" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "test alias file" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" - assert_match "test index file" - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" - # shellcheck disable=SC2154 - assert_match "200 OK" "$stderr" - assert_match "test alias file" - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test alias file" - assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test index file" - assert_command curl --fail -vv http://localhost:"$PORT"/index_test/index?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test index file" - - # toggle aliasing on and off using `set_asset_properties` - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/test_alias_file.html"; is_aliased=opt(opt(false)) })' - assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "404" "$stderr" - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/test_alias_file.html"; is_aliased=opt(opt(true)) })' - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "200 OK" "$stderr" - - # redirect survives upgrade - assert_command dfx deploy --upgrade-unchanged - assert_match "is already installed" - - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" - # shellcheck disable=SC2154 - assert_match "200 OK" "$stderr" - assert_match "test alias file" - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test alias file" - assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test index file" - - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "test alias file" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "test alias file" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" - assert_match "test index file" - - # disabling redirect works - echo "DISABLING NOW" - echo '[ - { - "match": "test_alias_file.html", - "enable_aliasing": false - } - ]' > src/e2e_project_frontend/assets/.ic-assets.json5 - dfx deploy e2e_project_frontend - - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" - # shellcheck disable=SC2154 - assert_match "200 OK" "$stderr" - assert_match "test alias file" - assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "404 Not Found" "$stderr" - assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test index file" - - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "test alias file" - assert_command_fail dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "key not found" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" - assert_match "test index file" - - # disabled redirect survives canister upgrade - echo "UPGRADE" - assert_command dfx deploy --upgrade-unchanged - - assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" - # shellcheck disable=SC2154 - assert_match "200 OK" "$stderr" - assert_match "test alias file" - assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "404 Not Found" "$stderr" - assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "test index file" - - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "test alias file" - assert_command_fail dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" - assert_match "key not found" - assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" - assert_match "test index file" - - # + echo "test alias file" >'src/e2e_project_frontend/assets/test_alias_file.html' + mkdir 'src/e2e_project_frontend/assets/index_test' + echo "test index file" >'src/e2e_project_frontend/assets/index_test/index.html' + + TEST_ALIAS_SHA256="blob \"\67\fb\58\e3\ea\45\56\10\5d\d5\a4\08\0e\8d\38\6e\0c\5f\9b\f5\f5\05\dd\0f\4a\2b\d8\65\ec\27\c6\06\"" + TEST_INDEX_SHA256="blob \"\2c\0c\c1\2a\96\c6\79\8c\34\be\fd\8f\6f\df\ba\2f\39\57\8e\15\c0\f8\69\2f\54\da\df\06\ee\98\08\f5\"" + + dfx_start + dfx deploy + + # decode as expected + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/test_alias_file.html";headers=vec{};method="GET";body=vec{}})' + assert_match "test alias file" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/test_alias_file";headers=vec{};method="GET";body=vec{}})' + assert_match "test alias file" + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/index_test";headers=vec{};method="GET";body=vec{}})' + assert_match "test index file" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "test alias file" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "test alias file" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" + assert_match "test index file" + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" + # shellcheck disable=SC2154 + assert_match "200 OK" "$stderr" + assert_match "test alias file" + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test alias file" + assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test index file" + assert_command curl --fail -vv http://localhost:"$PORT"/index_test/index?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test index file" + + # toggle aliasing on and off using `set_asset_properties` + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/test_alias_file.html"; is_aliased=opt(opt(false)) })' + assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" + assert_match "404" "$stderr" + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/test_alias_file.html"; is_aliased=opt(opt(true)) })' + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" + assert_match "200 OK" "$stderr" + + # redirect survives upgrade + assert_command dfx deploy --upgrade-unchanged + assert_match "is already installed" + + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" + # shellcheck disable=SC2154 + assert_match "200 OK" "$stderr" + assert_match "test alias file" + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test alias file" + assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test index file" + + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "test alias file" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "test alias file" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" + assert_match "test index file" + + # disabling redirect works + echo "DISABLING NOW" + echo '[ + { + "match": "test_alias_file.html", + "enable_aliasing": false + } + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + dfx deploy e2e_project_frontend + + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" + # shellcheck disable=SC2154 + assert_match "200 OK" "$stderr" + assert_match "test alias file" + assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" + assert_match "404 Not Found" "$stderr" + assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test index file" + + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "test alias file" + assert_command_fail dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "key not found" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" + assert_match "test index file" + + # disabled redirect survives canister upgrade + echo "UPGRADE" + assert_command dfx deploy --upgrade-unchanged + + assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file.html?canisterId="$ID" + # shellcheck disable=SC2154 + assert_match "200 OK" "$stderr" + assert_match "test alias file" + assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" + assert_match "404 Not Found" "$stderr" + assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" + assert_match "200 OK" "$stderr" + assert_match "test index file" + + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file.html\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "test alias file" + assert_command_fail dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/test_alias_file\";content_encoding=\"identity\";index=0;sha256=opt $TEST_ALIAS_SHA256})" + assert_match "key not found" + assert_command dfx canister call --query e2e_project_frontend http_request_streaming_callback "(record{key=\"/index_test\";content_encoding=\"identity\";index=0;sha256=opt $TEST_INDEX_SHA256})" + assert_match "test index file" + + # } @test "asset configuration via .ic-assets.json5 - detect unused config" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - mkdir src/e2e_project_frontend/assets/somedir - touch src/e2e_project_frontend/assets/somedir/upload-me.txt - echo '[ - { - "match": "nevermatchme", - "cache": { "max_age": 2000 } - } - ]' > src/e2e_project_frontend/assets/.ic-assets.json5 - echo '[ - { - "match": "upload-me.txt", - "headers": { "key": "value" } - }, - { - "match": "nevermatchme", - "headers": {}, - "ignore": false - }, - { - "match": "nevermatchmetoo", - "headers": null, - "ignore": false - }, - { - "match": "non-matcher", - "headers": {"x-header": "x-value"}, - "ignore": false - }, - { - "match": "/thanks-for-not-stripping-forward-slash", - "headers": {"x-header": "x-value"}, - "ignore": false - } - ]' > src/e2e_project_frontend/assets/somedir/.ic-assets.json5 + mkdir src/e2e_project_frontend/assets/somedir + touch src/e2e_project_frontend/assets/somedir/upload-me.txt + echo '[ + { + "match": "nevermatchme", + "cache": { "max_age": 2000 } + } + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + echo '[ + { + "match": "upload-me.txt", + "headers": { "key": "value" } + }, + { + "match": "nevermatchme", + "headers": {}, + "ignore": false + }, + { + "match": "nevermatchmetoo", + "headers": null, + "ignore": false + }, + { + "match": "non-matcher", + "headers": {"x-header": "x-value"}, + "ignore": false + }, + { + "match": "/thanks-for-not-stripping-forward-slash", + "headers": {"x-header": "x-value"}, + "ignore": false + } + ]' > src/e2e_project_frontend/assets/somedir/.ic-assets.json5 - assert_command dfx deploy - assert_match 'WARN: 1 unmatched configuration in .*/src/e2e_project_frontend/assets/.ic-assets.json config file:' - assert_contains 'WARN: { + assert_command dfx deploy + assert_match 'WARN: 1 unmatched configuration in .*/src/e2e_project_frontend/assets/.ic-assets.json config file:' + assert_contains 'WARN: { "match": "nevermatchme", "cache": { "max_age": 2000 }, "allow_raw_access": true }' - assert_match 'WARN: 4 unmatched configurations in .*/src/e2e_project_frontend/assets/somedir/.ic-assets.json config file:' - assert_contains 'WARN: { + assert_match 'WARN: 4 unmatched configurations in .*/src/e2e_project_frontend/assets/somedir/.ic-assets.json config file:' + assert_contains 'WARN: { "match": "nevermatchme", "headers": {}, "ignore": false, @@ -1421,8 +1421,8 @@ WARN: { "ignore": false, "allow_raw_access": true }' - # splitting this up into two checks, because the order is different on macos vs ubuntu - assert_contains 'WARN: { + # splitting this up into two checks, because the order is different on macos vs ubuntu + assert_contains 'WARN: { "match": "/thanks-for-not-stripping-forward-slash", "headers": { "x-header": "x-value" @@ -1433,26 +1433,26 @@ WARN: { } @test "asset configuration via .ic-assets.json5 - get and set asset properties" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - mkdir src/e2e_project_frontend/assets/somedir - touch src/e2e_project_frontend/assets/somedir/upload-me.txt - echo '[ - { - "match": "**/*", - "cache": { "max_age": 2000 }, - "headers": { "x-key": "x-value" }, - "enable_aliasing": true - } - ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + mkdir src/e2e_project_frontend/assets/somedir + touch src/e2e_project_frontend/assets/somedir/upload-me.txt + echo '[ + { + "match": "**/*", + "cache": { "max_age": 2000 }, + "headers": { "x-key": "x-value" }, + "enable_aliasing": true + } + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 - dfx deploy + dfx deploy - # read properties - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' - assert_contains '( + # read properties + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' + assert_contains '( record { headers = opt vec { record { "x-key"; "x-value" } }; is_aliased = opt true; @@ -1461,18 +1461,18 @@ WARN: { }, )' - # access required to update - assert_command_fail dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; max_age=opt(opt(5:nat64)) })' --identity anonymous - assert_match "Caller does not have Commit permission" - dfx identity new other --storage-mode plaintext - assert_command_fail dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; max_age=opt(opt(5:nat64)) })' --identity other - assert_match "Caller does not have Commit permission" - - # set max_age property and read it back - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; max_age=opt(opt(5:nat64)) })' - assert_contains '()' - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' - assert_contains '( + # access required to update + assert_command_fail dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; max_age=opt(opt(5:nat64)) })' --identity anonymous + assert_match "Caller does not have Commit permission" + dfx identity new other --storage-mode plaintext + assert_command_fail dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; max_age=opt(opt(5:nat64)) })' --identity other + assert_match "Caller does not have Commit permission" + + # set max_age property and read it back + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; max_age=opt(opt(5:nat64)) })' + assert_contains '()' + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' + assert_contains '( record { headers = opt vec { record { "x-key"; "x-value" } }; is_aliased = opt true; @@ -1481,11 +1481,11 @@ WARN: { }, )' - # set headers property and read it back - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; headers=opt(opt(vec{record {"new-key"; "new-value"}}))})' - assert_contains '()' - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' - assert_contains '( + # set headers property and read it back + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; headers=opt(opt(vec{record {"new-key"; "new-value"}}))})' + assert_contains '()' + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' + assert_contains '( record { headers = opt vec { record { "new-key"; "new-value" } }; is_aliased = opt true; @@ -1494,11 +1494,11 @@ WARN: { }, )' - # set allow_raw_access property and read it back - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; allow_raw_access=opt(opt(true))})' - assert_contains '()' - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' - assert_contains '( + # set allow_raw_access property and read it back + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; allow_raw_access=opt(opt(true))})' + assert_contains '()' + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' + assert_contains '( record { headers = opt vec { record { "new-key"; "new-value" } }; is_aliased = opt true; @@ -1507,11 +1507,11 @@ WARN: { }, )' - # set is_aliased property and read it back - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; is_aliased=opt(opt(false))})' - assert_contains '()' - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' - assert_contains '( + # set is_aliased property and read it back + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; is_aliased=opt(opt(false))})' + assert_contains '()' + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' + assert_contains '( record { headers = opt vec { record { "new-key"; "new-value" } }; is_aliased = opt false; @@ -1520,11 +1520,11 @@ WARN: { }, )' - # set all properties to None and read them back - assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; headers=opt(null); max_age=opt(null); allow_raw_access=opt(null); is_aliased=opt(null)})' - assert_contains '()' - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' - assert_contains '( + # set all properties to None and read them back + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/somedir/upload-me.txt"; headers=opt(null); max_age=opt(null); allow_raw_access=opt(null); is_aliased=opt(null)})' + assert_contains '()' + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/somedir/upload-me.txt")' + assert_contains '( record { headers = null; is_aliased = null; @@ -1535,53 +1535,53 @@ WARN: { } @test "asset configuration via .ic-assets.json5 - pretty printing when deploying" { - install_asset assetscanister + install_asset assetscanister - dfx_start + dfx_start - mkdir src/e2e_project_frontend/assets/somedir - echo "content" > src/e2e_project_frontend/assets/somedir/upload-me.txt - echo '[ - { - "match": "**/*", - "cache": { "max_age": 2000 }, - "headers": { - "x-header": "x-value" - }, - "enable_aliasing": true + mkdir src/e2e_project_frontend/assets/somedir + echo "content" > src/e2e_project_frontend/assets/somedir/upload-me.txt + echo '[ + { + "match": "**/*", + "cache": { "max_age": 2000 }, + "headers": { + "x-header": "x-value" }, - ]' > src/e2e_project_frontend/assets/somedir/.ic-assets.json5 + "enable_aliasing": true + }, + ]' > src/e2e_project_frontend/assets/somedir/.ic-assets.json5 - assert_command dfx deploy - assert_match '/somedir/upload-me.txt 1/1 \(8 bytes\) sha [0-9a-z]* \(with cache and 1 header\)' + assert_command dfx deploy + assert_match '/somedir/upload-me.txt 1/1 \(8 bytes\) sha [0-9a-z]* \(with cache and 1 header\)' } @test "uses selected canister wasm" { - dfx_start - use_asset_wasm 0.12.1 - assert_command dfx deploy - assert_command dfx canister info e2e_project_frontend - assert_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 - use_default_asset_wasm - assert_command dfx deploy - assert_command dfx canister info e2e_project_frontend - assert_not_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 + dfx_start + use_asset_wasm 0.12.1 + assert_command dfx deploy + assert_command dfx canister info e2e_project_frontend + assert_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 + use_default_asset_wasm + assert_command dfx deploy + assert_command dfx canister info e2e_project_frontend + assert_not_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 } @test "api version endpoint" { - install_asset assetscanister - dfx_start - assert_command dfx deploy - assert_command dfx canister call e2e_project_frontend api_version '()' - assert_match '\([0-9]* : nat16\)' + install_asset assetscanister + dfx_start + assert_command dfx deploy + assert_command dfx canister call e2e_project_frontend api_version '()' + assert_match '\([0-9]* : nat16\)' } @test "syncs asset properties when redeploying" { - install_asset assetscanister - dfx_start - assert_command dfx deploy - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/text-with-newlines.txt")' - assert_contains '( + install_asset assetscanister + dfx_start + assert_command dfx deploy + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/text-with-newlines.txt")' + assert_contains '( record { headers = null; is_aliased = null; @@ -1590,20 +1590,20 @@ WARN: { }, )' - echo '[ - { - "match": "**/*", - "cache": { "max_age": 2000 }, - "headers": { - "x-header": "x-value" - }, - "allow_raw_access": true, - "enable_aliasing": false + echo '[ + { + "match": "**/*", + "cache": { "max_age": 2000 }, + "headers": { + "x-header": "x-value" }, - ]' > src/e2e_project_frontend/assets/.ic-assets.json5 - assert_command dfx deploy - assert_command dfx canister call e2e_project_frontend get_asset_properties '("/text-with-newlines.txt")' - assert_contains '( + "allow_raw_access": true, + "enable_aliasing": false + }, + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + assert_command dfx deploy + assert_command dfx canister call e2e_project_frontend get_asset_properties '("/text-with-newlines.txt")' + assert_contains '( record { headers = opt vec { record { "x-header"; "x-value" } }; is_aliased = opt false; diff --git a/e2e/tests-dfx/base.bash b/e2e/tests-dfx/base.bash index 274a1e607c..5903d4244f 100644 --- a/e2e/tests-dfx/base.bash +++ b/e2e/tests-dfx/base.bash @@ -3,38 +3,38 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "provides base library location by default" { - install_asset base + install_asset base - dfx_start - dfx canister create --all - dfx build - dfx canister install e2e_project_backend + dfx_start + dfx canister create --all + dfx build + dfx canister install e2e_project_backend - assert_command dfx canister call --query e2e_project_backend is_digit '("5")' - assert_eq '(true)' + assert_command dfx canister call --query e2e_project_backend is_digit '("5")' + assert_eq '(true)' - assert_command dfx canister call --query e2e_project_backend is_digit '("w")' - assert_eq '(false)' + assert_command dfx canister call --query e2e_project_backend is_digit '("w")' + assert_eq '(false)' } @test "does not provide base library if there is a packtool" { - install_asset base - jq '.defaults.build.packtool="echo"' dfx.json | sponge dfx.json + install_asset base + jq '.defaults.build.packtool="echo"' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - assert_command_fail dfx build - assert_match 'import error \[M0010\], package "base" not defined' + dfx_start + dfx canister create --all + assert_command_fail dfx build + assert_match 'import error \[M0010\], package "base" not defined' } diff --git a/e2e/tests-dfx/basic-project.bash b/e2e/tests-dfx/basic-project.bash index f298c29947..6dd4ab76f8 100644 --- a/e2e/tests-dfx/basic-project.bash +++ b/e2e/tests-dfx/basic-project.bash @@ -3,48 +3,48 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "build + install + call + request-status -- greet_mo" { - dfx_new hello - install_asset greet - dfx_start - dfx canister create --all - dfx build - # INSTALL_REQUEST_ID=$(dfx canister install hello_backend --async) - # dfx canister request-status $INSTALL_REQUEST_ID - dfx canister install hello_backend - - assert_command dfx canister call hello_backend greet '("Banzai")' - assert_eq '("Hello, Banzai!")' - - assert_command dfx canister call hello_backend greet --type raw '4449444c00017103e29883' - assert_eq '("Hello, ☃!")' - - assert_command dfx canister call --query hello_backend greet '("Bongalo")' - assert_eq '("Hello, Bongalo!")' - - # Using call --async and request-status. - # Call with user Identity as Sender - assert_command dfx canister call --async hello_backend greet Blueberry - # At this point $output is the request ID. - # shellcheck disable=SC2154 - assert_command dfx canister request-status "$stdout" "$(dfx canister id hello_backend)" - assert_eq '("Hello, Blueberry!")' - - # Call using the wallet's call forwarding - assert_command dfx canister call --async hello_backend greet Blueberry --wallet="$(dfx identity get-wallet)" - # At this point $output is the request ID. - # shellcheck disable=SC2154 - assert_command dfx canister request-status "$stdout" "$(dfx identity get-wallet)" - assert_eq \ + dfx_new hello + install_asset greet + dfx_start + dfx canister create --all + dfx build + # INSTALL_REQUEST_ID=$(dfx canister install hello_backend --async) + # dfx canister request-status $INSTALL_REQUEST_ID + dfx canister install hello_backend + + assert_command dfx canister call hello_backend greet '("Banzai")' + assert_eq '("Hello, Banzai!")' + + assert_command dfx canister call hello_backend greet --type raw '4449444c00017103e29883' + assert_eq '("Hello, ☃!")' + + assert_command dfx canister call --query hello_backend greet '("Bongalo")' + assert_eq '("Hello, Bongalo!")' + + # Using call --async and request-status. + # Call with user Identity as Sender + assert_command dfx canister call --async hello_backend greet Blueberry + # At this point $output is the request ID. + # shellcheck disable=SC2154 + assert_command dfx canister request-status "$stdout" "$(dfx canister id hello_backend)" + assert_eq '("Hello, Blueberry!")' + + # Call using the wallet's call forwarding + assert_command dfx canister call --async hello_backend greet Blueberry --wallet="$(dfx identity get-wallet)" + # At this point $output is the request ID. + # shellcheck disable=SC2154 + assert_command dfx canister request-status "$stdout" "$(dfx identity get-wallet)" + assert_eq \ '( variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01q\11Hello, Blueberry!" } @@ -53,79 +53,79 @@ teardown() { } @test "build + install + call + request-status -- counter_mo" { - dfx_new hello - install_asset counter - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend + dfx_new hello + install_asset counter + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend - assert_command dfx canister call hello_backend read - assert_eq "(0 : nat)" + assert_command dfx canister call hello_backend read + assert_eq "(0 : nat)" - assert_command dfx canister call hello_backend inc - assert_eq "()" + assert_command dfx canister call hello_backend inc + assert_eq "()" - assert_command dfx canister call hello_backend read - assert_eq "(1 : nat)" + assert_command dfx canister call hello_backend read + assert_eq "(1 : nat)" - dfx canister call hello_backend inc - assert_command dfx canister call hello_backend read - assert_eq "(2 : nat)" + dfx canister call hello_backend inc + assert_command dfx canister call hello_backend read + assert_eq "(2 : nat)" - assert_command dfx canister call hello_backend read --output raw - assert_eq "4449444c00017d02" + assert_command dfx canister call hello_backend read --output raw + assert_eq "4449444c00017d02" - assert_command_fail dfx canister call --query hello_backend inc - assert_match "Not a query method." + assert_command_fail dfx canister call --query hello_backend inc + assert_match "Not a query method." - dfx canister call hello_backend inc - assert_command dfx canister call --query hello_backend read - assert_eq "(3 : nat)" + dfx canister call hello_backend inc + assert_command dfx canister call --query hello_backend read + assert_eq "(3 : nat)" - assert_command dfx canister call hello_backend inc --async - assert_command dfx canister request-status "$stdout" "$(dfx canister id hello_backend)" + assert_command dfx canister call hello_backend inc --async + assert_command dfx canister request-status "$stdout" "$(dfx canister id hello_backend)" - # Call write. - assert_command dfx canister call hello_backend write 1337 - assert_eq "()" + # Call write. + assert_command dfx canister call hello_backend write 1337 + assert_eq "()" - # Write has no return value. But we can _call_ read too. - # Call with user Identity as Sender - assert_command dfx canister call hello_backend read --async - assert_command dfx canister request-status "$stdout" "$(dfx canister id hello_backend)" - assert_eq "(1_337 : nat)" + # Write has no return value. But we can _call_ read too. + # Call with user Identity as Sender + assert_command dfx canister call hello_backend read --async + assert_command dfx canister request-status "$stdout" "$(dfx canister id hello_backend)" + assert_eq "(1_337 : nat)" - # Call using the wallet's call forwarding - assert_command dfx canister call hello_backend read --async --wallet="$(dfx identity get-wallet)" - assert_command dfx canister request-status "$stdout" "$(dfx identity get-wallet)" - assert_eq '(variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01}\b9\0a" } })' + # Call using the wallet's call forwarding + assert_command dfx canister call hello_backend read --async --wallet="$(dfx identity get-wallet)" + assert_command dfx canister request-status "$stdout" "$(dfx identity get-wallet)" + assert_eq '(variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01}\b9\0a" } })' } @test "build + install + call -- counter_idl_mo" { - dfx_new hello - install_asset counter_idl - dfx_start - dfx canister create --all - dfx build - dfx canister install --all - - assert_command dfx canister call hello_backend inc '(42,false,"testzZ",vec{1;2;3},opt record{head=42; tail=opt record{head=+43; tail=null}}, variant { cons=record{ 42; variant { cons=record{43; variant { nil }} } } })' --output idl - assert_eq "(43 : int, true, \"uftu{[\", vec { 2 : nat; 3 : nat; 4 : nat;}, opt record { head = 43 : int; tail = opt record { head = 44 : int; tail = null;};}, variant { cons = record { 43 : int; variant { cons = record { 44 : int; variant { nil };} };} })" + dfx_new hello + install_asset counter_idl + dfx_start + dfx canister create --all + dfx build + dfx canister install --all + + assert_command dfx canister call hello_backend inc '(42,false,"testzZ",vec{1;2;3},opt record{head=42; tail=opt record{head=+43; tail=null}}, variant { cons=record{ 42; variant { cons=record{43; variant { nil }} } } })' --output idl + assert_eq "(43 : int, true, \"uftu{[\", vec { 2 : nat; 3 : nat; 4 : nat;}, opt record { head = 43 : int; tail = opt record { head = 44 : int; tail = null;};}, variant { cons = record { 43 : int; variant { cons = record { 44 : int; variant { nil };} };} })" } @test "build + install + call -- matrix_multiply_mo" { - dfx_new hello - install_asset matrix_multiply - dfx_start - dfx canister create --all - dfx build - dfx canister install --all - - assert_command dfx canister call hello_backend multiply '(vec{vec{1;2};vec{3;4};vec{5;6}},vec{vec{1;2;3};vec{4;5;6}})' - assert_eq \ + dfx_new hello + install_asset matrix_multiply + dfx_start + dfx canister create --all + dfx build + dfx canister install --all + + assert_command dfx canister call hello_backend multiply '(vec{vec{1;2};vec{3;4};vec{5;6}},vec{vec{1;2;3};vec{4;5;6}})' + assert_eq \ "( vec { vec { 9 : int; 12 : int; 15 : int }; @@ -136,27 +136,27 @@ teardown() { } @test "inspect message - motoko" { - dfx_new hello - install_asset inspect_message - dfx_start - dfx deploy + dfx_new hello + install_asset inspect_message + dfx_start + dfx deploy - assert_command dfx canister call hello_backend always_accepted + assert_command dfx canister call hello_backend always_accepted - assert_command_fail dfx canister call hello_backend always_rejected - assert_contains "canister_inspect_message explicitly refused message" + assert_command_fail dfx canister call hello_backend always_rejected + assert_contains "canister_inspect_message explicitly refused message" } @test "inspect message - rust" { - dfx_new_rust hello + dfx_new_rust hello - install_asset inspect_message_rs + install_asset inspect_message_rs - dfx_start - dfx deploy + dfx_start + dfx deploy - assert_command dfx canister call hello_backend always_accepted + assert_command dfx canister call hello_backend always_accepted - assert_command_fail dfx canister call hello_backend always_rejected - assert_contains "Canister $(dfx canister id hello_backend) rejected the message" + assert_command_fail dfx canister call hello_backend always_rejected + assert_contains "Canister $(dfx canister id hello_backend) rejected the message" } diff --git a/e2e/tests-dfx/bitcoin.bash b/e2e/tests-dfx/bitcoin.bash index c8fb8385c0..72d81f48c1 100644 --- a/e2e/tests-dfx/bitcoin.bash +++ b/e2e/tests-dfx/bitcoin.bash @@ -5,259 +5,259 @@ load ../utils/_ BITCOIN_CANISTER_ID="g4xu7-jiaaa-aaaan-aaaaq-cai" setup() { - standard_setup + standard_setup - bitcoind -regtest -daemonwait + bitcoind -regtest -daemonwait } teardown() { - bitcoin-cli -regtest stop + bitcoin-cli -regtest stop - dfx_stop - # stop_dfx_replica - # stop_dfx_bootstrap - standard_teardown + dfx_stop + # stop_dfx_replica + # stop_dfx_bootstrap + standard_teardown } set_project_default_bitcoin_enabled() { - jq '.defaults.bitcoin.enabled=true' dfx.json | sponge dfx.json + jq '.defaults.bitcoin.enabled=true' dfx.json | sponge dfx.json } set_shared_local_network_bitcoin_enabled() { - create_networks_json - jq '.local.bitcoin.enabled=true' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + create_networks_json + jq '.local.bitcoin.enabled=true' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" } set_local_network_bitcoin_enabled() { - jq '.networks.local.bitcoin.enabled=true' dfx.json | sponge dfx.json + jq '.networks.local.bitcoin.enabled=true' dfx.json | sponge dfx.json } @test "noop" { - assert_command bitcoin-cli -regtest createwallet "test" - ADDRESS="$(bitcoin-cli -regtest getnewaddress)" - assert_command bitcoin-cli -regtest generatetoaddress 101 "$ADDRESS" + assert_command bitcoin-cli -regtest createwallet "test" + ADDRESS="$(bitcoin-cli -regtest getnewaddress)" + assert_command bitcoin-cli -regtest generatetoaddress 101 "$ADDRESS" } @test "dfx restarts replica when ic-btc-adapter restarts" { - dfx_new hello - dfx_start --enable-bitcoin - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - BTC_ADAPTER_PID=$(get_btc_adapter_pid) - - echo "replica pid is $REPLICA_PID" - echo "ic-btc-adapter pid is $BTC_ADAPTER_PID" - - kill -KILL "$BTC_ADAPTER_PID" - assert_process_exits "$BTC_ADAPTER_PID" 15s - assert_process_exits "$REPLICA_PID" 15s - - timeout 15s sh -c \ - 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ - || (echo "replica did not restart" && ps aux && exit 1) - wait_until_replica_healthy - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - # even after the above, still sometimes fails with - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' - - ID=$(dfx canister id hello_frontend) - - timeout 15s sh -c \ - "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port\")/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ - || (echo "icx-proxy did not restart" && ps aux && exit 1) - - assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" + dfx_new hello + dfx_start --enable-bitcoin + + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' + + REPLICA_PID=$(get_replica_pid) + BTC_ADAPTER_PID=$(get_btc_adapter_pid) + + echo "replica pid is $REPLICA_PID" + echo "ic-btc-adapter pid is $BTC_ADAPTER_PID" + + kill -KILL "$BTC_ADAPTER_PID" + assert_process_exits "$BTC_ADAPTER_PID" 15s + assert_process_exits "$REPLICA_PID" 15s + + timeout 15s sh -c \ + 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ + || (echo "replica did not restart" && ps aux && exit 1) + wait_until_replica_healthy + + # Sometimes initially get an error like: + # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module + # but the condition clears. + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + # even after the above, still sometimes fails with + # IC0515: Certified state is not available yet. Please try again... + sleep 10 + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + + assert_command dfx canister call hello_backend greet '("Omega")' + assert_eq '("Hello, Omega!")' + + ID=$(dfx canister id hello_frontend) + + timeout 15s sh -c \ + "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port\")/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ + || (echo "icx-proxy did not restart" && ps aux && exit 1) + + assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" } @test "dfx restarts replica when ic-btc-adapter restarts - replica and bootstrap" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - dfx_replica --enable-bitcoin - dfx_bootstrap - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - BTC_ADAPTER_PID=$(get_btc_adapter_pid) - - echo "replica pid is $REPLICA_PID" - echo "replica port is $(get_replica_port)" - echo "ic-btc-adapter pid is $BTC_ADAPTER_PID" - - echo "killing btc adapter" - - kill -KILL "$BTC_ADAPTER_PID" - assert_process_exits "$BTC_ADAPTER_PID" 15s - assert_process_exits "$REPLICA_PID" 15s - - timeout 15s sh -x -c \ - "until curl --fail --verbose -o /dev/null http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\")/api/v2/status; do echo \"waiting for replica to restart on port \$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\")\"; sleep 1; done" \ - || (echo "replica did not restart" && echo "last replica port was $(get_replica_port)" && ps aux && exit 1) - - # bootstrap doesn't detect the new replica port, so we have to restart it - stop_dfx_bootstrap - dfx_bootstrap - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - # even after the above, still sometimes fails with - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + dfx_replica --enable-bitcoin + dfx_bootstrap + + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' + + REPLICA_PID=$(get_replica_pid) + BTC_ADAPTER_PID=$(get_btc_adapter_pid) + + echo "replica pid is $REPLICA_PID" + echo "replica port is $(get_replica_port)" + echo "ic-btc-adapter pid is $BTC_ADAPTER_PID" + + echo "killing btc adapter" + + kill -KILL "$BTC_ADAPTER_PID" + assert_process_exits "$BTC_ADAPTER_PID" 15s + assert_process_exits "$REPLICA_PID" 15s + + timeout 15s sh -x -c \ + "until curl --fail --verbose -o /dev/null http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\")/api/v2/status; do echo \"waiting for replica to restart on port \$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\")\"; sleep 1; done" \ + || (echo "replica did not restart" && echo "last replica port was $(get_replica_port)" && ps aux && exit 1) + + # bootstrap doesn't detect the new replica port, so we have to restart it + stop_dfx_bootstrap + dfx_bootstrap + + # Sometimes initially get an error like: + # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module + # but the condition clears. + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + # even after the above, still sometimes fails with + # IC0515: Certified state is not available yet. Please try again... + sleep 10 + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + + assert_command dfx canister call hello_backend greet '("Omega")' + assert_eq '("Hello, Omega!")' } @test "dfx start --bitcoin-node implies --enable-bitcoin" { - dfx_new hello - dfx_start "--bitcoin-node" "127.0.0.1:18444" + dfx_new hello + dfx_start "--bitcoin-node" "127.0.0.1:18444" - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } @test "dfx replica --bitcoin-node implies --enable-bitcoin" { - skip "dfx replica and bootstrap are deprecated" + skip "dfx replica and bootstrap are deprecated" - dfx_new hello - dfx_replica "--bitcoin-node" "127.0.0.1:18444" - dfx_bootstrap + dfx_new hello + dfx_replica "--bitcoin-node" "127.0.0.1:18444" + dfx_bootstrap - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } @test "dfx start --enable-bitcoin with no other configuration succeeds" { - dfx_new hello + dfx_new hello - dfx_start --enable-bitcoin + dfx_start --enable-bitcoin - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } @test "dfx start --enable-bitcoin --background waits until bitcoin canister is installed" { - dfx_new hello + dfx_new hello - dfx_start --enable-bitcoin + dfx_start --enable-bitcoin - assert_command dfx canister info "$BITCOIN_CANISTER_ID" - assert_contains "Controllers: 2vxsx-fae" - assert_contains "Module hash: 0x" + assert_command dfx canister info "$BITCOIN_CANISTER_ID" + assert_contains "Controllers: 2vxsx-fae" + assert_contains "Module hash: 0x" } @test "dfx replica --enable-bitcoin with no other configuration succeeds" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello + skip "dfx replica and bootstrap are deprecated" + dfx_new hello - dfx_replica --enable-bitcoin + dfx_replica --enable-bitcoin - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } @test "can enable bitcoin through default configuration - dfx start" { - dfx_new hello - define_project_network - set_project_default_bitcoin_enabled + dfx_new hello + define_project_network + set_project_default_bitcoin_enabled - dfx_start + dfx_start - assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid + assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid } @test "can enable bitcoin through shared local network - dfx start" { - dfx_new hello - set_shared_local_network_bitcoin_enabled + dfx_new hello + set_shared_local_network_bitcoin_enabled - dfx_start + dfx_start - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } @test "can enable bitcoin through local network configuration - dfx start" { - dfx_new hello - set_local_network_bitcoin_enabled + dfx_new hello + set_local_network_bitcoin_enabled - dfx_start + dfx_start - assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid + assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid } @test "can enable bitcoin through default configuration - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_default_bitcoin_enabled + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + define_project_network + set_project_default_bitcoin_enabled - dfx_replica + dfx_replica - assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid + assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid } @test "can enable bitcoin through shared local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - set_shared_local_network_bitcoin_enabled + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + set_shared_local_network_bitcoin_enabled - dfx_replica + dfx_replica - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } @test "dfx start with both bitcoin and canister http enabled" { - dfx_new hello + dfx_new hello - dfx_start --enable-bitcoin --enable-canister-http + dfx_start --enable-bitcoin --enable-canister-http - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' } @test "dfx replica+bootstrap with both bitcoin and canister http enabled" { - skip "dfx replica and bootstrap are deprecated" + skip "dfx replica and bootstrap are deprecated" - dfx_new hello + dfx_new hello - dfx_replica --enable-bitcoin --enable-canister-http - dfx_bootstrap + dfx_replica --enable-bitcoin --enable-canister-http + dfx_bootstrap - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' } diff --git a/e2e/tests-dfx/bootstrap.bash b/e2e/tests-dfx/bootstrap.bash index d782394907..00310e1de8 100644 --- a/e2e/tests-dfx/bootstrap.bash +++ b/e2e/tests-dfx/bootstrap.bash @@ -3,38 +3,38 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - # stop_dfx_replica - # stop_dfx_bootstrap + # stop_dfx_replica + # stop_dfx_bootstrap - standard_teardown + standard_teardown } @test "forbid starting webserver with a forwarded port" { - skip "dfx replica and bootstrap are deprecated" + skip "dfx replica and bootstrap are deprecated" - assert_command_fail dfx bootstrap --port 4943 - assert_match "Cannot forward API calls to the same bootstrap server" + assert_command_fail dfx bootstrap --port 4943 + assert_match "Cannot forward API calls to the same bootstrap server" } @test "bootstrap supports http requests" { - skip "dfx replica and bootstrap are deprecated" + skip "dfx replica and bootstrap are deprecated" - dfx_replica - dfx_bootstrap + dfx_replica + dfx_bootstrap - dfx canister create --all - dfx build - dfx canister install hello_frontend + dfx canister create --all + dfx build + dfx canister install hello_frontend - ID=$(dfx canister id hello_frontend) - PORT=$(get_webserver_port) - assert_command curl http://localhost:"$PORT"/sample-asset.txt?canisterId="$ID" --max-time 60 - # shellcheck disable=SC2154 - assert_eq "This is a sample asset!" "$stdout" + ID=$(dfx canister id hello_frontend) + PORT=$(get_webserver_port) + assert_command curl http://localhost:"$PORT"/sample-asset.txt?canisterId="$ID" --max-time 60 + # shellcheck disable=SC2154 + assert_eq "This is a sample asset!" "$stdout" } diff --git a/e2e/tests-dfx/build.bash b/e2e/tests-dfx/build.bash index a3ff9bc835..898e003d0a 100644 --- a/e2e/tests-dfx/build.bash +++ b/e2e/tests-dfx/build.bash @@ -3,165 +3,165 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - stop_webserver - dfx_stop + stop_webserver + dfx_stop - standard_teardown + standard_teardown } @test "can build a custom canister with wasm and/or candid from a url" { - install_asset wasm/identity - mkdir -p www/wasm - mv main.wasm www/wasm/ - mv main.did www/wasm - start_webserver --directory www - dfx_start + install_asset wasm/identity + mkdir -p www/wasm + mv main.wasm www/wasm/ + mv main.did www/wasm + start_webserver --directory www + dfx_start - dfx_new + dfx_new - jq '.canisters={}' dfx.json | sponge dfx.json + jq '.canisters={}' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.candid="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.did"' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.wasm="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.wasm"' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.type="custom"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.candid="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.did"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.wasm="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.wasm"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.type="custom"' dfx.json | sponge dfx.json - dfx deploy + dfx deploy - ID=$(dfx canister id e2e_project) - assert_command dfx canister call e2e_project getCanisterId - assert_match "$ID" + ID=$(dfx canister id e2e_project) + assert_command dfx canister call e2e_project getCanisterId + assert_match "$ID" } @test "report an error if a canister defines both a wasm url and a build step" { - install_asset wasm/identity - mkdir -p www/wasm - mv main.wasm www/wasm/ - mv main.did www/wasm - start_webserver --directory www - dfx_start + install_asset wasm/identity + mkdir -p www/wasm + mv main.wasm www/wasm/ + mv main.did www/wasm + start_webserver --directory www + dfx_start - dfx_new + dfx_new - jq '.canisters={}' dfx.json | sponge dfx.json + jq '.canisters={}' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.candid="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.did"' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.wasm="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.wasm"' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.type="custom"' dfx.json | sponge dfx.json - jq '.canisters.e2e_project.build="echo nope"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.candid="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.did"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.wasm="http://localhost:'"$E2E_WEB_SERVER_PORT"'/wasm/main.wasm"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.type="custom"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project.build="echo nope"' dfx.json | sponge dfx.json - assert_command_fail dfx deploy - assert_contains "Canister 'e2e_project' defines its wasm field as a URL, and has a build step." + assert_command_fail dfx deploy + assert_contains "Canister 'e2e_project' defines its wasm field as a URL, and has a build step." } @test "build uses default build args" { - install_asset default_args - dfx_start - dfx canister create --all - assert_command_fail dfx build --check - assert_match "unknown option" - assert_match "compacting-gcX" + install_asset default_args + dfx_start + dfx canister create --all + assert_command_fail dfx build --check + assert_match "unknown option" + assert_match "compacting-gcX" } @test "build uses canister build args" { - install_asset canister_args - dfx_start - dfx canister create --all - assert_command_fail dfx build --check - assert_match "unknown option" - assert_match "compacting-gcY" - assert_not_match "compacting-gcX" + install_asset canister_args + dfx_start + dfx canister create --all + assert_command_fail dfx build --check + assert_match "unknown option" + assert_match "compacting-gcY" + assert_not_match "compacting-gcX" } @test "empty canister build args don't shadow default" { - install_asset empty_canister_args - dfx_start - dfx canister create --all - assert_command_fail dfx build --check - assert_match '"--error-detail" "5"' - assert_match "unknown option" - assert_match "compacting-gcX" + install_asset empty_canister_args + dfx_start + dfx canister create --all + assert_command_fail dfx build --check + assert_match '"--error-detail" "5"' + assert_match "unknown option" + assert_match "compacting-gcX" } @test "build fails on invalid motoko" { - install_asset invalid - dfx_start - dfx canister create --all - assert_command_fail dfx build - assert_match "syntax error" + install_asset invalid + dfx_start + dfx canister create --all + assert_command_fail dfx build + assert_match "syntax error" } @test "build supports relative imports" { - install_asset import - dfx_start - dfx canister create --all - assert_command dfx build - dfx canister install --all - assert_command dfx canister call e2e_project_backend greet World - assert_match "10World" + install_asset import + dfx_start + dfx canister create --all + assert_command dfx build + dfx canister install --all + assert_command dfx canister call e2e_project_backend greet World + assert_match "10World" } @test "build succeeds on default project" { - dfx_start - dfx canister create --all - assert_command dfx build + dfx_start + dfx canister create --all + assert_command dfx build } @test "build succeeds if enable optimize" { - jq '.canisters.e2e_project_backend.optimize="cycles"' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - assert_command dfx build + jq '.canisters.e2e_project_backend.optimize="cycles"' dfx.json | sponge dfx.json + dfx_start + dfx canister create --all + assert_command dfx build } @test "build custom canister default no shrink" { - install_asset custom_canister - install_asset wasm/identity + install_asset custom_canister + install_asset wasm/identity - dfx_start - dfx canister create --all - assert_command dfx build custom -vvv - assert_not_match "Shrinking WASM" + dfx_start + dfx canister create --all + assert_command dfx build custom -vvv + assert_not_match "Shrinking WASM" - jq '.canisters.custom.shrink=true' dfx.json | sponge dfx.json - assert_command dfx build custom -vvv - assert_match "Shrinking WASM" + jq '.canisters.custom.shrink=true' dfx.json | sponge dfx.json + assert_command dfx build custom -vvv + assert_match "Shrinking WASM" } @test "build custom canister default no optimize" { - install_asset custom_canister - install_asset wasm/identity + install_asset custom_canister + install_asset wasm/identity - dfx_start - dfx canister create --all - assert_command dfx build custom -vvv - assert_not_match "Optimizing" + dfx_start + dfx canister create --all + assert_command dfx build custom -vvv + assert_not_match "Optimizing" - jq '.canisters.custom.optimize="size"' dfx.json | sponge dfx.json - assert_command dfx build custom -vvv - assert_match "Optimizing WASM at level" + jq '.canisters.custom.optimize="size"' dfx.json | sponge dfx.json + assert_command dfx build custom -vvv + assert_match "Optimizing WASM at level" } @test "build succeeds if enable gzip" { - install_asset base - jq '.canisters.e2e_project_backend.gzip=true' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - assert_command dfx build - assert_file_exists .dfx/local/canisters/e2e_project_backend/e2e_project_backend.wasm.gz + install_asset base + jq '.canisters.e2e_project_backend.gzip=true' dfx.json | sponge dfx.json + dfx_start + dfx canister create --all + assert_command dfx build + assert_file_exists .dfx/local/canisters/e2e_project_backend/e2e_project_backend.wasm.gz } @test "build succeeds if specify gzip wasm" { - install_asset gzip - install_asset wasm/identity - dfx_start - dfx canister create --all - assert_command dfx build + install_asset gzip + install_asset wasm/identity + dfx_start + dfx canister create --all + assert_command dfx build } # TODO: Before Tungsten, we need to update this test for code with inter-canister calls. @@ -176,19 +176,19 @@ teardown() { } @test "build outputs warning" { - install_asset warning - dfx_start - dfx canister create --all - assert_command dfx build - assert_match "warning \[M0145\], this pattern of type" + install_asset warning + dfx_start + dfx canister create --all + assert_command dfx build + assert_match "warning \[M0145\], this pattern of type" } @test "build fails on unknown imports" { - install_asset import_error - dfx_start - dfx canister create --all - assert_command_fail dfx build - assert_match 'import error \[M0011\], canister alias "random" not defined' + install_asset import_error + dfx_start + dfx canister create --all + assert_command_fail dfx build + assert_match 'import error \[M0011\], canister alias "random" not defined' } @test "build fails if canister type is not supported" { @@ -260,10 +260,10 @@ teardown() { } @test "build succeeds with URL as network parameter" { - dfx_start - webserver_port=$(get_webserver_port) - dfx canister create --all --network "http://127.0.0.1:$webserver_port" - assert_command dfx build --network "http://127.0.0.1:$webserver_port" + dfx_start + webserver_port=$(get_webserver_port) + dfx canister create --all --network "http://127.0.0.1:$webserver_port" + assert_command dfx build --network "http://127.0.0.1:$webserver_port" } @test "build succeeds when requested network is configured" { diff --git a/e2e/tests-dfx/build_granular.bash b/e2e/tests-dfx/build_granular.bash index 930b7fa5a4..04101028c8 100644 --- a/e2e/tests-dfx/build_granular.bash +++ b/e2e/tests-dfx/build_granular.bash @@ -3,101 +3,101 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "direct dependencies are built" { - dfx_start - dfx canister create --all - #specify build for only assets_canister - dfx build e2e_project_frontend - - #validate direct dependency built and is callable - assert_command dfx canister install e2e_project_backend - assert_command dfx canister call e2e_project_backend greet World + dfx_start + dfx canister create --all + #specify build for only assets_canister + dfx build e2e_project_frontend + + #validate direct dependency built and is callable + assert_command dfx canister install e2e_project_backend + assert_command dfx canister call e2e_project_backend greet World } @test "transitive dependencies are built" { - install_asset transitive_deps_canisters - dfx_start - dfx canister create --all - #install of tertiary dependency canister will fail since its not built - assert_command_fail dfx canister install canister_a - #specify build for primary canister - dfx build canister_c - - #validate tertiary transitive dependency is built and callable - assert_command dfx canister install canister_a - assert_command dfx canister call canister_a greet World - assert_match '("Namaste, World!")' + install_asset transitive_deps_canisters + dfx_start + dfx canister create --all + #install of tertiary dependency canister will fail since its not built + assert_command_fail dfx canister install canister_a + #specify build for primary canister + dfx build canister_c + + #validate tertiary transitive dependency is built and callable + assert_command dfx canister install canister_a + assert_command dfx canister call canister_a greet World + assert_match '("Namaste, World!")' } @test "unspecified dependencies are not built" { - dfx_start - dfx canister create --all - # only build motoko canister - dfx build e2e_project_backend - # validate assets canister wasn't built and can't be installed - assert_command_fail dfx canister install e2e_project_frontend - assert_match "No such file or directory" + dfx_start + dfx canister create --all + # only build motoko canister + dfx build e2e_project_backend + # validate assets canister wasn't built and can't be installed + assert_command_fail dfx canister install e2e_project_frontend + assert_match "No such file or directory" } @test "manual build of specified canisters succeeds" { - install_asset assetscanister + install_asset assetscanister - dfx_start - dfx canister create e2e_project_backend - dfx build e2e_project_backend - assert_command dfx canister install e2e_project_backend - assert_command dfx canister call e2e_project_backend greet World + dfx_start + dfx canister create e2e_project_backend + dfx build e2e_project_backend + assert_command dfx canister install e2e_project_backend + assert_command dfx canister call e2e_project_backend greet World - assert_command_fail dfx canister install e2e_project_frontend - assert_match "Cannot find canister id. Please issue 'dfx canister create e2e_project_frontend'." - dfx canister create e2e_project_frontend - dfx build e2e_project_frontend - dfx canister install e2e_project_frontend + assert_command_fail dfx canister install e2e_project_frontend + assert_match "Cannot find canister id. Please issue 'dfx canister create e2e_project_frontend'." + dfx canister create e2e_project_frontend + dfx build e2e_project_frontend + dfx canister install e2e_project_frontend - assert_command dfx canister call --query e2e_project_frontend retrieve '("/binary/noise.txt")' --output idl - assert_eq '(blob "\b8\01 \80\0aw12 \00xy\0aKL\0b\0ajk")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("/binary/noise.txt")' --output idl + assert_eq '(blob "\b8\01 \80\0aw12 \00xy\0aKL\0b\0ajk")' - assert_command dfx canister call --query e2e_project_frontend retrieve '("/text-with-newlines.txt")' --output idl - assert_eq '(blob "cherries\0ait\27s cherry season\0aCHERRIES")' + assert_command dfx canister call --query e2e_project_frontend retrieve '("/text-with-newlines.txt")' --output idl + assert_eq '(blob "cherries\0ait\27s cherry season\0aCHERRIES")' } @test "cyclic dependencies are detected" { - install_asset transitive_deps_canisters - dfx_start - dfx canister create --all - assert_command_fail dfx build canister_e - assert_match "Circular canister dependencies: canister_e -> canister_d -> canister_e" + install_asset transitive_deps_canisters + dfx_start + dfx canister create --all + assert_command_fail dfx build canister_e + assert_match "Circular canister dependencies: canister_e -> canister_d -> canister_e" } @test "multiple non-cyclic dependency paths to the same canister are ok" { - install_asset transitive_deps_canisters - dfx_start - dfx canister create --all - assert_command dfx build canister_f + install_asset transitive_deps_canisters + dfx_start + dfx canister create --all + assert_command dfx build canister_f } @test "the all flag builds everything" { - dfx_start - dfx canister create --all - assert_command dfx build --all - assert_command dfx canister install --all + dfx_start + dfx canister create --all + assert_command dfx build --all + assert_command dfx canister install --all } @test "the all flags conflicts with canister name" { - dfx_start - dfx canister create --all - assert_command_fail dfx build e2e_project --all + dfx_start + dfx canister create --all + assert_command_fail dfx build e2e_project --all } diff --git a/e2e/tests-dfx/build_rust.bash b/e2e/tests-dfx/build_rust.bash index 0f30045528..e07a3dc101 100644 --- a/e2e/tests-dfx/build_rust.bash +++ b/e2e/tests-dfx/build_rust.bash @@ -3,15 +3,15 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "build without cargo-audit installed cannot check for vulnerabilities" { diff --git a/e2e/tests-dfx/call.bash b/e2e/tests-dfx/call.bash index d6ba70735f..0b2e54b8df 100644 --- a/e2e/tests-dfx/call.bash +++ b/e2e/tests-dfx/call.bash @@ -3,130 +3,130 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "call --candid " { - install_asset call - cat dfx.json + install_asset call + cat dfx.json - dfx_start - dfx deploy - assert_command dfx canister call hello_backend make_struct '("A", "B")' - assert_eq '(record { c = "A"; d = "B" })' + dfx_start + dfx deploy + assert_command dfx canister call hello_backend make_struct '("A", "B")' + assert_eq '(record { c = "A"; d = "B" })' - CANISTER_ID=$(dfx canister id hello_backend) - rm .dfx/local/canister_ids.json + CANISTER_ID=$(dfx canister id hello_backend) + rm .dfx/local/canister_ids.json - # if no candid file known, then no field names - assert_command dfx canister call "$CANISTER_ID" make_struct '("A", "B")' - assert_eq '(record { 99 = "A"; 100 = "B" })' + # if no candid file known, then no field names + assert_command dfx canister call "$CANISTER_ID" make_struct '("A", "B")' + assert_eq '(record { 99 = "A"; 100 = "B" })' - # if passing the candid file, field names available - assert_command dfx canister call --candid .dfx/local/canisters/hello_backend/hello_backend.did "$CANISTER_ID" make_struct '("A", "B")' - assert_eq '(record { c = "A"; d = "B" })' + # if passing the candid file, field names available + assert_command dfx canister call --candid .dfx/local/canisters/hello_backend/hello_backend.did "$CANISTER_ID" make_struct '("A", "B")' + assert_eq '(record { c = "A"; d = "B" })' } @test "call subcommand accepts canister identifier as canister name" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - assert_command dfx canister call "$(dfx canister id hello_backend)" greet '("Names are difficult")' - assert_match '("Hello, Names are difficult!")' + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + assert_command dfx canister call "$(dfx canister id hello_backend)" greet '("Names are difficult")' + assert_match '("Hello, Names are difficult!")' } @test "call subcommand accepts argument from a file" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - TMP_NAME_FILE="$(mktemp)" - printf '("Names can be very long")' > "$TMP_NAME_FILE" - assert_command dfx canister call --argument-file "$TMP_NAME_FILE" hello_backend greet - assert_match '("Hello, Names can be very long!")' - rm "$TMP_NAME_FILE" + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + TMP_NAME_FILE="$(mktemp)" + printf '("Names can be very long")' > "$TMP_NAME_FILE" + assert_command dfx canister call --argument-file "$TMP_NAME_FILE" hello_backend greet + assert_match '("Hello, Names can be very long!")' + rm "$TMP_NAME_FILE" } @test "call subcommand accepts argument from stdin" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - TMP_NAME_FILE="$(mktemp)" - printf '("stdin")' > "$TMP_NAME_FILE" - assert_command dfx canister call --argument-file - hello_backend greet < "$TMP_NAME_FILE" - assert_match '("Hello, stdin!")' - rm "$TMP_NAME_FILE" + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + TMP_NAME_FILE="$(mktemp)" + printf '("stdin")' > "$TMP_NAME_FILE" + assert_command dfx canister call --argument-file - hello_backend greet < "$TMP_NAME_FILE" + assert_match '("Hello, stdin!")' + rm "$TMP_NAME_FILE" } @test "call random value (pattern)" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - assert_command dfx canister call hello_backend greet --random '{ value = Some ["\"DFINITY\""] }' - assert_match '("Hello, DFINITY!")' + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + assert_command dfx canister call hello_backend greet --random '{ value = Some ["\"DFINITY\""] }' + assert_match '("Hello, DFINITY!")' } @test "error on empty arguments when the method requires some" { - install_asset greet - dfx_start - dfx deploy - assert_command_fail dfx canister call hello_backend greet + install_asset greet + dfx_start + dfx deploy + assert_command_fail dfx canister call hello_backend greet } @test "call random value (empty)" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - assert_command dfx canister call hello_backend greet --random '' - assert_match '("Hello, .*!")' + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + assert_command dfx canister call hello_backend greet --random '' + assert_match '("Hello, .*!")' } @test "long call" { - install_asset recurse - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - assert_command dfx canister call hello_backend recurse 100 + install_asset recurse + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + assert_command dfx canister call hello_backend recurse 100 } @test "call with cycles" { - dfx_start - dfx deploy - assert_command_fail dfx canister call hello_backend greet '' --with-cycles 100 - assert_command dfx canister call hello_backend greet '' --with-cycles 100 --wallet "$(dfx identity get-wallet)" + dfx_start + dfx deploy + assert_command_fail dfx canister call hello_backend greet '' --with-cycles 100 + assert_command dfx canister call hello_backend greet '' --with-cycles 100 --wallet "$(dfx identity get-wallet)" } @test "call by canister id outside of a project" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - ID="$(dfx canister id hello_backend)" - NETWORK="http://localhost:$(get_webserver_port)" - ( - cd "$E2E_TEMP_DIR" - mkdir "not-a-project-dir" - cd "not-a-project-dir" - assert_command dfx canister call "$ID" greet '("you")' --network "$NETWORK" - assert_match '("Hello, you!")' - ) + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + ID="$(dfx canister id hello_backend)" + NETWORK="http://localhost:$(get_webserver_port)" + ( + cd "$E2E_TEMP_DIR" + mkdir "not-a-project-dir" + cd "not-a-project-dir" + assert_command dfx canister call "$ID" greet '("you")' --network "$NETWORK" + assert_match '("Hello, you!")' + ) } diff --git a/e2e/tests-dfx/candid_ui.bash b/e2e/tests-dfx/candid_ui.bash index 166606dfbb..eb98beb583 100644 --- a/e2e/tests-dfx/candid_ui.bash +++ b/e2e/tests-dfx/candid_ui.bash @@ -3,22 +3,22 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "Candid UI" { - dfx_start - dfx deploy - ID=$(dfx canister id __Candid_UI) - PORT=$(get_webserver_port) - assert_command curl http://localhost:"$PORT"/?canisterId="$ID" - assert_match "Candid UI" + dfx_start + dfx deploy + ID=$(dfx canister id __Candid_UI) + PORT=$(get_webserver_port) + assert_command curl http://localhost:"$PORT"/?canisterId="$ID" + assert_match "Candid UI" } diff --git a/e2e/tests-dfx/canister_http.bash b/e2e/tests-dfx/canister_http.bash index 24e004018a..c80bf4c927 100644 --- a/e2e/tests-dfx/canister_http.bash +++ b/e2e/tests-dfx/canister_http.bash @@ -3,339 +3,339 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop - # stop_dfx_replica - # stop_dfx_bootstrap - standard_teardown + dfx_stop + # stop_dfx_replica + # stop_dfx_bootstrap + standard_teardown } set_project_default_canister_http_enabled() { - jq ".defaults.canister_http.enabled=${1:-true}" dfx.json | sponge dfx.json + jq ".defaults.canister_http.enabled=${1:-true}" dfx.json | sponge dfx.json } set_project_local_network_canister_http_enabled() { - jq ".networks.local.canister_http.enabled=${1:-true}" dfx.json | sponge dfx.json + jq ".networks.local.canister_http.enabled=${1:-true}" dfx.json | sponge dfx.json } set_shared_local_network_canister_http_enabled() { - create_networks_json + create_networks_json - jq ".local.canister_http.enabled=${1:-true}" "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + jq ".local.canister_http.enabled=${1:-true}" "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" } set_shared_local_network_canister_http_empty() { - create_networks_json + create_networks_json - jq '.local.canister_http={}' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + jq '.local.canister_http={}' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" } @test "canister http feature is enabled by default" { - dfx_start + dfx_start - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "canister http feature is enabled by default with empty json element" { - set_shared_local_network_canister_http_empty + set_shared_local_network_canister_http_empty - dfx_start + dfx_start - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "dfx restarts replica when ic-https-outcalls-adapter restarts" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' - REPLICA_PID=$(get_replica_pid) - CANISTER_HTTP_ADAPTER_PID=$(get_canister_http_adapter_pid) + REPLICA_PID=$(get_replica_pid) + CANISTER_HTTP_ADAPTER_PID=$(get_canister_http_adapter_pid) - echo "replica pid is $REPLICA_PID" - echo "ic-https-outcalls-adapter pid is $CANISTER_HTTP_ADAPTER_PID" + echo "replica pid is $REPLICA_PID" + echo "ic-https-outcalls-adapter pid is $CANISTER_HTTP_ADAPTER_PID" - kill -KILL "$CANISTER_HTTP_ADAPTER_PID" - assert_process_exits "$CANISTER_HTTP_ADAPTER_PID" 15s - assert_process_exits "$REPLICA_PID" 15s + kill -KILL "$CANISTER_HTTP_ADAPTER_PID" + assert_process_exits "$CANISTER_HTTP_ADAPTER_PID" 15s + assert_process_exits "$REPLICA_PID" 15s - timeout 15s sh -c \ - 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ - || (echo "replica did not restart" && ps aux && exit 1) - wait_until_replica_healthy + timeout 15s sh -c \ + 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ + || (echo "replica did not restart" && ps aux && exit 1) + wait_until_replica_healthy - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting + # Sometimes initially get an error like: + # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module + # but the condition clears. + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting - # Even so, after that passes, sometimes this happens: - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting + # Even so, after that passes, sometimes this happens: + # IC0515: Certified state is not available yet. Please try again... + sleep 10 + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' + assert_command dfx canister call hello_backend greet '("Omega")' + assert_eq '("Hello, Omega!")' - ID=$(dfx canister id hello_frontend) + ID=$(dfx canister id hello_frontend) - timeout 15s sh -c \ - "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port\")/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ - || (echo "icx-proxy did not restart" && ps aux && exit 1) + timeout 15s sh -c \ + "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port\")/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ + || (echo "icx-proxy did not restart" && ps aux && exit 1) - assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" + assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" } @test "dfx restarts replica when ic-https-outcalls-adapter restarts - replica and bootstrap" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - dfx_replica - dfx_bootstrap - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - CANISTER_HTTP_ADAPTER_PID=$(get_canister_http_adapter_pid) - - echo "replica pid is $REPLICA_PID" - echo "replica port is $(get_replica_port)" - echo "ic-https-outcalls-adapter pid is $CANISTER_HTTP_ADAPTER_PID" - - kill -KILL "$CANISTER_HTTP_ADAPTER_PID" - assert_process_exits "$CANISTER_HTTP_ADAPTER_PID" 15s - assert_process_exits "$REPLICA_PID" 15s - - timeout 15s sh -x -c \ - "until curl --fail --verbose -o /dev/null http://localhost:\$(cat '$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port')/api/v2/status; do echo \"waiting for replica to restart on port \$(cat '$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port')\"; sleep 1; done" \ - || (echo "replica did not restart" && echo "last replica port was $(get_replica_port)" && ps aux && exit 1) - - # bootstrap doesn't detect the new replica port, so we have to restart it - stop_dfx_bootstrap - dfx_bootstrap - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - # Even so, after that passes, sometimes this happens: - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + dfx_replica + dfx_bootstrap + + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' + + REPLICA_PID=$(get_replica_pid) + CANISTER_HTTP_ADAPTER_PID=$(get_canister_http_adapter_pid) + + echo "replica pid is $REPLICA_PID" + echo "replica port is $(get_replica_port)" + echo "ic-https-outcalls-adapter pid is $CANISTER_HTTP_ADAPTER_PID" + + kill -KILL "$CANISTER_HTTP_ADAPTER_PID" + assert_process_exits "$CANISTER_HTTP_ADAPTER_PID" 15s + assert_process_exits "$REPLICA_PID" 15s + + timeout 15s sh -x -c \ + "until curl --fail --verbose -o /dev/null http://localhost:\$(cat '$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port')/api/v2/status; do echo \"waiting for replica to restart on port \$(cat '$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port')\"; sleep 1; done" \ + || (echo "replica did not restart" && echo "last replica port was $(get_replica_port)" && ps aux && exit 1) + + # bootstrap doesn't detect the new replica port, so we have to restart it + stop_dfx_bootstrap + dfx_bootstrap + + # Sometimes initially get an error like: + # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module + # but the condition clears. + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + + # Even so, after that passes, sometimes this happens: + # IC0515: Certified state is not available yet. Please try again... + sleep 10 + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + + assert_command dfx canister call hello_backend greet '("Omega")' + assert_eq '("Hello, Omega!")' } @test "dfx start --enable-canister-http with no other configuration succeeds" { - dfx_new hello + dfx_new hello - dfx_start --enable-canister-http + dfx_start --enable-canister-http - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "dfx replica --enable-canister-http with no other configuration succeeds" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello + skip "dfx replica and bootstrap are deprecated" + dfx_new hello - dfx_replica --enable-canister-http + dfx_replica --enable-canister-http - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "can enable http through project default configuration - dfx start" { - dfx_new hello - define_project_network - set_project_default_canister_http_enabled + dfx_new hello + define_project_network + set_project_default_canister_http_enabled - dfx_start + dfx_start - assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can disable http through project default configuration - dfx start" { - dfx_new hello - define_project_network - set_project_default_canister_http_enabled false + dfx_new hello + define_project_network + set_project_default_canister_http_enabled false - dfx_start + dfx_start - assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can enable http through project local network - dfx start" { - dfx_new hello - define_project_network - set_project_local_network_canister_http_enabled + dfx_new hello + define_project_network + set_project_local_network_canister_http_enabled - dfx_start + dfx_start - assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can disable http through project local network - dfx start" { - dfx_new hello - define_project_network - set_project_local_network_canister_http_enabled false + dfx_new hello + define_project_network + set_project_local_network_canister_http_enabled false - dfx_start + dfx_start - assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can enable http through shared local network - dfx start" { - dfx_new hello - set_shared_local_network_canister_http_enabled + dfx_new hello + set_shared_local_network_canister_http_enabled - dfx_start + dfx_start - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "can disable http through shared local network - dfx start" { - dfx_new hello - set_shared_local_network_canister_http_enabled false + dfx_new hello + set_shared_local_network_canister_http_enabled false - dfx_start + dfx_start - assert_file_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "can enable http through project default configuration - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_default_canister_http_enabled + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + define_project_network + set_project_default_canister_http_enabled - dfx_replica + dfx_replica - assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can disable http through project default configuration - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_default_canister_http_enabled false + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + define_project_network + set_project_default_canister_http_enabled false - dfx_replica + dfx_replica - assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can enable http through project local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_local_network_canister_http_enabled + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + define_project_network + set_project_local_network_canister_http_enabled - dfx_replica + dfx_replica - assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can disable http through project local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_local_network_canister_http_enabled false + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + define_project_network + set_project_local_network_canister_http_enabled false - dfx_replica + dfx_replica - assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid + assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid } @test "can enable http through shared local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - set_shared_local_network_canister_http_enabled + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + set_shared_local_network_canister_http_enabled - dfx_replica + dfx_replica - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "can disable http through shared local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - set_shared_local_network_canister_http_enabled false + skip "dfx replica and bootstrap are deprecated" + dfx_new hello + set_shared_local_network_canister_http_enabled false - dfx_replica + dfx_replica - assert_file_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" + assert_file_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } @test "dfx starts http adapter with correct log level - project defaults" { - dfx_new - jq '.defaults.canister_http.log_level="warning"' dfx.json | sponge dfx.json - define_project_network + dfx_new + jq '.defaults.canister_http.log_level="warning"' dfx.json | sponge dfx.json + define_project_network - assert_command dfx start --background --verbose - assert_match "log level: Warning" - assert_command dfx stop + assert_command dfx start --background --verbose + assert_match "log level: Warning" + assert_command dfx stop - jq '.defaults.canister_http.log_level="critical"' dfx.json | sponge dfx.json - assert_command dfx start --background --verbose - assert_match "log level: Critical" + jq '.defaults.canister_http.log_level="critical"' dfx.json | sponge dfx.json + assert_command dfx start --background --verbose + assert_match "log level: Critical" } @test "dfx starts http adapter with correct log level - local network" { - dfx_new - jq '.networks.local.canister_http.log_level="warning"' dfx.json | sponge dfx.json - define_project_network + dfx_new + jq '.networks.local.canister_http.log_level="warning"' dfx.json | sponge dfx.json + define_project_network - assert_command dfx start --background --verbose - assert_match "log level: Warning" - assert_command dfx stop + assert_command dfx start --background --verbose + assert_match "log level: Warning" + assert_command dfx stop - jq '.networks.local.canister_http.log_level="critical"' dfx.json | sponge dfx.json - assert_command dfx start --background --verbose --clean - assert_match "log level: Critical" + jq '.networks.local.canister_http.log_level="critical"' dfx.json | sponge dfx.json + assert_command dfx start --background --verbose --clean + assert_match "log level: Critical" } @test "dfx starts http adapter with correct log level - shared network" { - dfx_new - create_networks_json - jq '.local.canister_http.log_level="warning"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + dfx_new + create_networks_json + jq '.local.canister_http.log_level="warning"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background --verbose - assert_match "log level: Warning" - assert_command dfx stop + assert_command dfx start --background --verbose + assert_match "log level: Warning" + assert_command dfx stop - jq '.local.canister_http.log_level="critical"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background --verbose - assert_match "log level: Critical" + jq '.local.canister_http.log_level="critical"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + assert_command dfx start --background --verbose + assert_match "log level: Critical" } @test "can query a website" { - dfx_start + dfx_start - dfx_new - install_asset canister_http + dfx_new + install_asset canister_http - dfx deploy + dfx deploy - assert_command dfx canister call e2e_project_backend get_url '("www.githubstatus.com:443","https://www.githubstatus.com:443")' - assert_contains "Git Operations" - assert_contains "API Requests" + assert_command dfx canister call e2e_project_backend get_url '("www.githubstatus.com:443","https://www.githubstatus.com:443")' + assert_contains "Git Operations" + assert_contains "API Requests" } diff --git a/e2e/tests-dfx/certificate.bash b/e2e/tests-dfx/certificate.bash index 3c6ba232d5..1fe5d66269 100644 --- a/e2e/tests-dfx/certificate.bash +++ b/e2e/tests-dfx/certificate.bash @@ -3,76 +3,76 @@ load ../utils/_ setup() { - standard_setup - - dfx_new certificate - - install_asset certificate - dfx_start - - dfx deploy - - BACKEND="127.0.0.1:$(get_webserver_port)" - - # In github workflows, at the time of this writing, we get: - # macos-latest: mitmproxy 7.0.4 - # ubuntu-latest: mitmproxy 4.x - if [ "$(mitmdump --version | grep Mitmproxy | cut -d ' ' -f 2 | cut -c 1-2)" = "4." ]; then - MODIFY_BODY_ARG="--replacements" - else - MODIFY_BODY_ARG="--modify-body" + standard_setup + + dfx_new certificate + + install_asset certificate + dfx_start + + dfx deploy + + BACKEND="127.0.0.1:$(get_webserver_port)" + + # In github workflows, at the time of this writing, we get: + # macos-latest: mitmproxy 7.0.4 + # ubuntu-latest: mitmproxy 4.x + if [ "$(mitmdump --version | grep Mitmproxy | cut -d ' ' -f 2 | cut -c 1-2)" = "4." ]; then + MODIFY_BODY_ARG="--replacements" + else + MODIFY_BODY_ARG="--modify-body" + fi + + # Sometimes, something goes wrong with mitmdump's initialization. + # It reports that it is listening, and the `nc` call succeeds, + # but it does not actually respond to requests. + # + # This happens whether using a fixed port or a dynamic port. + # For this reason, we retry initialization until `dfx ping` succeeds. + # + # I have seen this process take as many as 9 iterations to succeed, + # so across a large number of CI runs, it could take even more. + # The overall CI timeout will limit the maximum time taken. + + while true + do + MITM_PORT=$(get_ephemeral_port) + overwrite_webserver_port "$MITM_PORT" + + mitmdump -p "$MITM_PORT" --mode "reverse:http://$BACKEND" "$MODIFY_BODY_ARG" '/~s/Hello,/Hullo,' & + MITMDUMP_PID=$! + + timeout 5 sh -c \ + "until nc -z localhost $MITM_PORT; do echo waiting for mitmdump; sleep 1; done" \ + || (echo "mitmdump did not start on port $MITM_PORT" && exit 1) + + if timeout 10 dfx ping; then + break fi - # Sometimes, something goes wrong with mitmdump's initialization. - # It reports that it is listening, and the `nc` call succeeds, - # but it does not actually respond to requests. - # - # This happens whether using a fixed port or a dynamic port. - # For this reason, we retry initialization until `dfx ping` succeeds. - # - # I have seen this process take as many as 9 iterations to succeed, - # so across a large number of CI runs, it could take even more. - # The overall CI timeout will limit the maximum time taken. - - while true - do - MITM_PORT=$(get_ephemeral_port) - overwrite_webserver_port "$MITM_PORT" - - mitmdump -p "$MITM_PORT" --mode "reverse:http://$BACKEND" "$MODIFY_BODY_ARG" '/~s/Hello,/Hullo,' & - MITMDUMP_PID=$! - - timeout 5 sh -c \ - "until nc -z localhost $MITM_PORT; do echo waiting for mitmdump; sleep 1; done" \ - || (echo "mitmdump did not start on port $MITM_PORT" && exit 1) - - if timeout 10 dfx ping; then - break - fi - - kill -9 $MITMDUMP_PID - done + kill -9 $MITMDUMP_PID + done } teardown() { - # Kill child processes of mitmdump. Otherwise they hang around way too long - pkill -P $MITMDUMP_PID - kill $MITMDUMP_PID + # Kill child processes of mitmdump. Otherwise they hang around way too long + pkill -P $MITMDUMP_PID + kill $MITMDUMP_PID - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "mitm attack - update: attack fails because certificate verification fails" { - assert_command_fail dfx canister call certificate_backend hello_update '("Buckaroo")' - assert_match 'Certificate verification failed.' + assert_command_fail dfx canister call certificate_backend hello_update '("Buckaroo")' + assert_match 'Certificate verification failed.' } @test "mitm attack - query: attack succeeds because there is no certificate to verify" { - # The wallet does not have a query call forward method (currently calls forward from wallet's update method) - # So call with users Identity as sender here - # There may need to be a query version of wallet_call - assert_command dfx canister call certificate_backend hello_query '("Buckaroo")' - assert_eq '("Hullo, Buckaroo!")' + # The wallet does not have a query call forward method (currently calls forward from wallet's update method) + # So call with users Identity as sender here + # There may need to be a query version of wallet_call + assert_command dfx canister call certificate_backend hello_query '("Buckaroo")' + assert_eq '("Hullo, Buckaroo!")' } diff --git a/e2e/tests-dfx/certified_info.bash b/e2e/tests-dfx/certified_info.bash index 718dd20794..0765760081 100644 --- a/e2e/tests-dfx/certified_info.bash +++ b/e2e/tests-dfx/certified_info.bash @@ -3,37 +3,37 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "get certified-info" { - dfx_start - dfx canister create hello_backend - assert_command dfx canister info "$(dfx canister id hello_backend)" - WALLET_ID=$(dfx identity get-wallet) - SELF_ID=$(dfx identity get-principal) - assert_match \ + dfx_start + dfx canister create hello_backend + assert_command dfx canister info "$(dfx canister id hello_backend)" + WALLET_ID=$(dfx identity get-wallet) + SELF_ID=$(dfx identity get-principal) + assert_match \ "Controllers: ($WALLET_ID $SELF_ID|$SELF_ID $WALLET_ID) Module hash: None" - dfx build hello_backend - RESULT="$(openssl dgst -sha256 .dfx/local/canisters/hello_backend/hello_backend.wasm)" - # shellcheck disable=SC2034 - HASH="0x" - HASH+=$(echo "${RESULT}" | cut -d' ' -f 2) + dfx build hello_backend + RESULT="$(openssl dgst -sha256 .dfx/local/canisters/hello_backend/hello_backend.wasm)" + # shellcheck disable=SC2034 + HASH="0x" + HASH+=$(echo "${RESULT}" | cut -d' ' -f 2) - dfx canister install hello_backend - assert_command dfx canister info "$(dfx canister id hello_backend)" - assert_match \ + dfx canister install hello_backend + assert_command dfx canister info "$(dfx canister id hello_backend)" + assert_match \ "Controllers: ($WALLET_ID $SELF_ID|$SELF_ID $WALLET_ID) Module hash: $(HASH)" } diff --git a/e2e/tests-dfx/create.bash b/e2e/tests-dfx/create.bash index 28c82adaa7..a7f04b3ed4 100644 --- a/e2e/tests-dfx/create.bash +++ b/e2e/tests-dfx/create.bash @@ -3,259 +3,259 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "create succeeds on default project" { - dfx_start - assert_command dfx canister create --all + dfx_start + assert_command dfx canister create --all } @test "create succeeds with --specified-id" { - dfx_start - assert_command dfx canister create e2e_project_backend --specified-id n5n4y-3aaaa-aaaaa-p777q-cai - assert_command dfx canister id e2e_project_backend - assert_match n5n4y-3aaaa-aaaaa-p777q-cai + dfx_start + assert_command dfx canister create e2e_project_backend --specified-id n5n4y-3aaaa-aaaaa-p777q-cai + assert_command dfx canister id e2e_project_backend + assert_match n5n4y-3aaaa-aaaaa-p777q-cai } @test "create succeeds when specify large canister ID" { - dfx_start - # hhn2s-5l777-77777-7777q-cai is the canister ID of (u64::MAX / 2) - assert_command dfx canister create e2e_project_backend --specified-id hhn2s-5l777-77777-7777q-cai - assert_command dfx canister id e2e_project_backend - assert_match hhn2s-5l777-77777-7777q-cai + dfx_start + # hhn2s-5l777-77777-7777q-cai is the canister ID of (u64::MAX / 2) + assert_command dfx canister create e2e_project_backend --specified-id hhn2s-5l777-77777-7777q-cai + assert_command dfx canister id e2e_project_backend + assert_match hhn2s-5l777-77777-7777q-cai } @test "create fails when specify out of range canister ID" { - dfx_start - # nojwb-ieaaa-aaaaa-aaaaa-cai is the canister ID of (u64::MAX / 2 + 1) - assert_command_fail dfx canister create e2e_project_backend --specified-id nojwb-ieaaa-aaaaa-aaaaa-cai + dfx_start + # nojwb-ieaaa-aaaaa-aaaaa-cai is the canister ID of (u64::MAX / 2 + 1) + assert_command_fail dfx canister create e2e_project_backend --specified-id nojwb-ieaaa-aaaaa-aaaaa-cai - assert_match "Specified CanisterId nojwb-ieaaa-aaaaa-aaaaa-cai is not hosted by subnet" + assert_match "Specified CanisterId nojwb-ieaaa-aaaaa-aaaaa-cai is not hosted by subnet" } @test "create fails if set both --all and --specified-id" { - dfx_start - assert_command_fail dfx canister create --all --specified-id xbgkv-fyaaa-aaaaa-aaava-cai - assert_match "error: the argument '--all' cannot be used with '--specified-id '" + dfx_start + assert_command_fail dfx canister create --all --specified-id xbgkv-fyaaa-aaaaa-aaava-cai + assert_match "error: the argument '--all' cannot be used with '--specified-id '" } @test "create generates the canister_ids.json" { - dfx_start - assert_command dfx canister create --all - [[ -f .dfx/local/canister_ids.json ]] + dfx_start + assert_command dfx canister create --all + [[ -f .dfx/local/canister_ids.json ]] } @test "create without parameters sets wallet and self as controller" { - dfx_start - PRINCIPAL=$(dfx identity get-principal) - WALLET=$(dfx identity get-wallet) - assert_command dfx canister create --all - assert_command dfx canister info e2e_project_backend - assert_match "Controllers: ($PRINCIPAL $WALLET|$WALLET $PRINCIPAL)" + dfx_start + PRINCIPAL=$(dfx identity get-principal) + WALLET=$(dfx identity get-wallet) + assert_command dfx canister create --all + assert_command dfx canister info e2e_project_backend + assert_match "Controllers: ($PRINCIPAL $WALLET|$WALLET $PRINCIPAL)" } @test "create with --no-wallet sets only self as controller" { - dfx_start - PRINCIPAL=$(dfx identity get-principal) - WALLET=$(dfx identity get-wallet) - assert_command dfx canister create --all --no-wallet - assert_command dfx canister info e2e_project_backend - assert_not_match "Controllers: ($PRINCIPAL $WALLET|$WALLET $PRINCIPAL)" - assert_match "Controllers: $PRINCIPAL" + dfx_start + PRINCIPAL=$(dfx identity get-principal) + WALLET=$(dfx identity get-wallet) + assert_command dfx canister create --all --no-wallet + assert_command dfx canister info e2e_project_backend + assert_not_match "Controllers: ($PRINCIPAL $WALLET|$WALLET $PRINCIPAL)" + assert_match "Controllers: $PRINCIPAL" } @test "build fails without create" { - dfx_start - assert_command_fail dfx build - assert_match "Cannot find canister id." + dfx_start + assert_command_fail dfx build + assert_match "Cannot find canister id." } @test "build fails if all canisters in project are not created" { - dfx_start - assert_command dfx canister create e2e_project_backend - assert_command_fail dfx build - assert_match "Cannot find canister id. Please issue 'dfx canister create e2e_project_frontend'" + dfx_start + assert_command dfx canister create e2e_project_backend + assert_command_fail dfx build + assert_match "Cannot find canister id. Please issue 'dfx canister create e2e_project_frontend'" } @test "create succeeds with network parameter" { - dfx_start - assert_command dfx canister create --all --network local + dfx_start + assert_command dfx canister create --all --network local } @test "create fails with incorrect network" { - dfx_start - assert_command_fail dfx canister create --all --network nosuch - assert_match "Network not found" + dfx_start + assert_command_fail dfx canister create --all --network nosuch + assert_match "Network not found" } @test "create succeeds when requested network is configured" { - dfx_start + dfx_start - setup_actuallylocal_shared_network - assert_command dfx canister create --all --network actuallylocal + setup_actuallylocal_shared_network + assert_command dfx canister create --all --network actuallylocal } @test "create with wallet succeeds when requested network is configured" { - dfx_start - setup_actuallylocal_shared_network + dfx_start + setup_actuallylocal_shared_network - assert_command dfx_set_wallet - assert_command dfx canister create --all --network actuallylocal + assert_command dfx_set_wallet + assert_command dfx canister create --all --network actuallylocal } @test "create fails if selected network exists but has no providers" { - dfx_start + dfx_start - jq '.networks.actuallylocal.providers=[]' dfx.json | sponge dfx.json - assert_command_fail dfx canister create --all --network actuallylocal - assert_match "Did not find any providers for network 'actuallylocal'" + jq '.networks.actuallylocal.providers=[]' dfx.json | sponge dfx.json + assert_command_fail dfx canister create --all --network actuallylocal + assert_match "Did not find any providers for network 'actuallylocal'" } @test "create fails with network parameter when network does not exist" { - dfx_start - jq '.networks.actuallylocal.providers=["http://not-real.nowhere.test."]' dfx.json | sponge dfx.json - assert_command_fail dfx canister create --all --network actuallylocal - assert_match "dns error: failed to lookup address information" + dfx_start + jq '.networks.actuallylocal.providers=["http://not-real.nowhere.test."]' dfx.json | sponge dfx.json + assert_command_fail dfx canister create --all --network actuallylocal + assert_match "dns error: failed to lookup address information" } @test "create accepts --controller named parameter, with controller by identity name" { - dfx_start - dfx identity new --storage-mode plaintext alice - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - - - assert_command dfx canister create --all --controller alice - assert_command dfx canister info e2e_project_backend - assert_match "Controllers: $ALICE_PRINCIPAL" - - assert_command_fail dfx deploy - assert_command dfx deploy --identity alice + dfx_start + dfx identity new --storage-mode plaintext alice + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + + + assert_command dfx canister create --all --controller alice + assert_command dfx canister info e2e_project_backend + assert_match "Controllers: $ALICE_PRINCIPAL" + + assert_command_fail dfx deploy + assert_command dfx deploy --identity alice } @test "create accepts --controller named parameter, with controller by identity principal" { - dfx_start - dfx identity new --storage-mode plaintext alice - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - - assert_command dfx canister create --all --controller "${ALICE_PRINCIPAL}" - assert_command dfx canister info e2e_project_backend - assert_not_match "Controllers: ($ALICE_WALLET $ALICE_PRINCIPAL|$ALICE_PRINCIPAL $ALICE_WALLET)" - assert_match "Controllers: $ALICE_PRINCIPAL" - - assert_command_fail dfx deploy - assert_command dfx deploy --identity alice + dfx_start + dfx identity new --storage-mode plaintext alice + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + + assert_command dfx canister create --all --controller "${ALICE_PRINCIPAL}" + assert_command dfx canister info e2e_project_backend + assert_not_match "Controllers: ($ALICE_WALLET $ALICE_PRINCIPAL|$ALICE_PRINCIPAL $ALICE_WALLET)" + assert_match "Controllers: $ALICE_PRINCIPAL" + + assert_command_fail dfx deploy + assert_command dfx deploy --identity alice } @test "create accepts --controller named parameter, with controller by wallet principal" { - dfx_start - dfx identity new --storage-mode plaintext alice - ALICE_WALLET=$(dfx identity get-wallet --identity alice) + dfx_start + dfx identity new --storage-mode plaintext alice + ALICE_WALLET=$(dfx identity get-wallet --identity alice) - assert_command dfx canister create --all --controller "${ALICE_WALLET}" - assert_command dfx canister info e2e_project_backend - assert_match "Controllers: $ALICE_WALLET" + assert_command dfx canister create --all --controller "${ALICE_WALLET}" + assert_command dfx canister info e2e_project_backend + assert_match "Controllers: $ALICE_WALLET" - assert_command_fail dfx deploy - assert_command_fail dfx deploy --identity alice - assert_command dfx deploy --identity alice --wallet "${ALICE_WALLET}" + assert_command_fail dfx deploy + assert_command_fail dfx deploy --identity alice + assert_command dfx deploy --identity alice --wallet "${ALICE_WALLET}" } @test "create accepts --controller named parameter, with controller by name of selected identity" { - # there is a different code path if the specified controller happens to be - # the currently selected identity. - dfx_start - dfx identity new --storage-mode plaintext alice - dfx identity new --storage-mode plaintext bob - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + # there is a different code path if the specified controller happens to be + # the currently selected identity. + dfx_start + dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext bob + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - dfx identity use bob + dfx identity use bob - assert_command dfx canister create --all --controller bob + assert_command dfx canister create --all --controller bob - dfx identity use alice - assert_command dfx canister info e2e_project_backend - assert_match "Controllers: $BOB_PRINCIPAL" + dfx identity use alice + assert_command dfx canister info e2e_project_backend + assert_match "Controllers: $BOB_PRINCIPAL" - assert_command_fail dfx deploy - assert_command dfx deploy --identity bob + assert_command_fail dfx deploy + assert_command dfx deploy --identity bob } @test "create single controller accepts --controller named parameter, with controller by identity name" { - dfx_start - dfx identity new --storage-mode plaintext alice - dfx identity new --storage-mode plaintext bob - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + dfx_start + dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext bob + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - assert_command dfx canister create --controller alice e2e_project_backend - assert_command dfx canister create --controller bob e2e_project_frontend + assert_command dfx canister create --controller alice e2e_project_backend + assert_command dfx canister create --controller bob e2e_project_frontend - assert_command dfx canister info e2e_project_backend - assert_match "Controllers: $ALICE_PRINCIPAL" + assert_command dfx canister info e2e_project_backend + assert_match "Controllers: $ALICE_PRINCIPAL" - assert_command dfx canister info e2e_project_frontend - assert_match "Controllers: $BOB_PRINCIPAL" + assert_command dfx canister info e2e_project_frontend + assert_match "Controllers: $BOB_PRINCIPAL" - # check this first, because alice will deploy e2e_project in the next step - assert_command_fail dfx deploy e2e_project_backend --identity bob - # this actually deploys e2e_project before failing, because it is a dependency - assert_command_fail dfx deploy e2e_project_frontend --identity alice + # check this first, because alice will deploy e2e_project in the next step + assert_command_fail dfx deploy e2e_project_backend --identity bob + # this actually deploys e2e_project before failing, because it is a dependency + assert_command_fail dfx deploy e2e_project_frontend --identity alice - assert_command dfx deploy e2e_project_backend --identity alice - assert_command dfx deploy e2e_project_frontend --identity bob + assert_command dfx deploy e2e_project_backend --identity alice + assert_command dfx deploy e2e_project_frontend --identity bob } @test "create canister with multiple controllers" { - dfx_start - dfx identity new --storage-mode plaintext alice - dfx identity new --storage-mode plaintext bob - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - # awk step is to avoid trailing space - PRINCIPALS_SORTED=$(echo "$ALICE_PRINCIPAL" "$BOB_PRINCIPAL" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) - - assert_command dfx canister create --all --controller alice --controller bob --identity alice - assert_command dfx canister info e2e_project_backend - assert_match "Controllers: ${PRINCIPALS_SORTED}" - - assert_command dfx deploy --identity alice - assert_command_fail dfx deploy --identity bob - - # The certified assets canister will have added alice as an authorized user, because she was the caller - # at initialization time. Bob has to be added separately. BUT, the canister has to be deployed first - # in order to call the authorize method. - assert_command dfx canister call e2e_project_frontend authorize "(principal \"$BOB_PRINCIPAL\")" --identity alice - - assert_command dfx deploy --identity bob + dfx_start + dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext bob + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + # awk step is to avoid trailing space + PRINCIPALS_SORTED=$(echo "$ALICE_PRINCIPAL" "$BOB_PRINCIPAL" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) + + assert_command dfx canister create --all --controller alice --controller bob --identity alice + assert_command dfx canister info e2e_project_backend + assert_match "Controllers: ${PRINCIPALS_SORTED}" + + assert_command dfx deploy --identity alice + assert_command_fail dfx deploy --identity bob + + # The certified assets canister will have added alice as an authorized user, because she was the caller + # at initialization time. Bob has to be added separately. BUT, the canister has to be deployed first + # in order to call the authorize method. + assert_command dfx canister call e2e_project_frontend authorize "(principal \"$BOB_PRINCIPAL\")" --identity alice + + assert_command dfx deploy --identity bob } @test "reports wallet must be upgraded if attempting to create a canister with multiple controllers through an old wallet" { - use_wallet_wasm 0.7.2 + use_wallet_wasm 0.7.2 - dfx_start - dfx identity new --storage-mode plaintext alice - dfx identity new --storage-mode plaintext bob + dfx_start + dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext bob - assert_command_fail dfx canister create --all --controller alice --controller bob --identity alice - assert_match "The wallet canister must be upgraded: The installed wallet does not support multiple controllers." - assert_match "To upgrade, run dfx wallet upgrade" + assert_command_fail dfx canister create --all --controller alice --controller bob --identity alice + assert_match "The wallet canister must be upgraded: The installed wallet does not support multiple controllers." + assert_match "To upgrade, run dfx wallet upgrade" - use_wallet_wasm 0.8.2 - assert_command dfx wallet upgrade --identity alice - assert_command dfx canister create --all --controller alice --controller bob --identity alice + use_wallet_wasm 0.8.2 + assert_command dfx wallet upgrade --identity alice + assert_command dfx canister create --all --controller alice --controller bob --identity alice } @test "canister-create on mainnet without wallet does not propagate the 404" { - assert_command_fail dfx deploy --network ic --no-wallet - assert_match 'dfx ledger create-canister' + assert_command_fail dfx deploy --network ic --no-wallet + assert_match 'dfx ledger create-canister' } diff --git a/e2e/tests-dfx/delete.bash b/e2e/tests-dfx/delete.bash index c11792fa3c..d87e08bcfd 100755 --- a/e2e/tests-dfx/delete.bash +++ b/e2e/tests-dfx/delete.bash @@ -3,38 +3,38 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop - - standard_teardown + dfx_stop + + standard_teardown } @test "delete can be used to delete a canister" { - dfx_start - dfx deploy e2e_project_backend - id=$(dfx canister id e2e_project_backend) - dfx canister stop e2e_project_backend - assert_command dfx canister delete e2e_project_backend - assert_command_fail dfx canister info e2e_project_backend - assert_contains "Cannot find canister id. Please issue 'dfx canister create e2e_project_backend'." - assert_command_fail dfx canister status "$id" - assert_contains "Canister $id not found" + dfx_start + dfx deploy e2e_project_backend + id=$(dfx canister id e2e_project_backend) + dfx canister stop e2e_project_backend + assert_command dfx canister delete e2e_project_backend + assert_command_fail dfx canister info e2e_project_backend + assert_contains "Cannot find canister id. Please issue 'dfx canister create e2e_project_backend'." + assert_command_fail dfx canister status "$id" + assert_contains "Canister $id not found" } @test "delete requires confirmation if the canister is not stopped" { - dfx_start - dfx deploy e2e_project_backend - id=$(dfx canister id e2e_project_backend) - assert_command_fail timeout -s9 20s dfx canister delete e2e_project_backend - assert_command dfx canister info e2e_project_backend - assert_command dfx canister delete e2e_project_backend -y - assert_command_fail dfx canister info e2e_project_backend - assert_contains "Cannot find canister id. Please issue 'dfx canister create e2e_project_backend'." - assert_command_fail dfx canister status "$id" - assert_contains "Canister $id not found" + dfx_start + dfx deploy e2e_project_backend + id=$(dfx canister id e2e_project_backend) + assert_command_fail timeout -s9 20s dfx canister delete e2e_project_backend + assert_command dfx canister info e2e_project_backend + assert_command dfx canister delete e2e_project_backend -y + assert_command_fail dfx canister info e2e_project_backend + assert_contains "Cannot find canister id. Please issue 'dfx canister create e2e_project_backend'." + assert_command_fail dfx canister status "$id" + assert_contains "Canister $id not found" } diff --git a/e2e/tests-dfx/deploy.bash b/e2e/tests-dfx/deploy.bash index b8ac6692f1..88aa5f05fe 100644 --- a/e2e/tests-dfx/deploy.bash +++ b/e2e/tests-dfx/deploy.bash @@ -3,144 +3,144 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "deploy --upgrade-unchanged upgrades even if the .wasm did not change" { - dfx_start - assert_command dfx deploy + dfx_start + assert_command dfx deploy - assert_command dfx deploy - assert_match "Module hash.*is already installed" + assert_command dfx deploy + assert_match "Module hash.*is already installed" - assert_command dfx deploy --upgrade-unchanged - assert_not_match "Module hash.*is already installed" + assert_command dfx deploy --upgrade-unchanged + assert_not_match "Module hash.*is already installed" } @test "deploy without arguments sets wallet and self as the controllers" { - dfx_start - WALLET=$(dfx identity get-wallet) - PRINCIPAL=$(dfx identity get-principal) - assert_command dfx deploy hello_backend - assert_command dfx canister info hello_backend - assert_match "Controllers: ($WALLET $PRINCIPAL|$PRINCIPAL $WALLET)" + dfx_start + WALLET=$(dfx identity get-wallet) + PRINCIPAL=$(dfx identity get-principal) + assert_command dfx deploy hello_backend + assert_command dfx canister info hello_backend + assert_match "Controllers: ($WALLET $PRINCIPAL|$PRINCIPAL $WALLET)" } @test "deploy --no-wallet sets only self as the controller" { - dfx_start - WALLET=$(dfx identity get-wallet) - PRINCIPAL=$(dfx identity get-principal) - assert_command dfx deploy hello_backend --no-wallet - assert_command dfx canister info hello_backend - assert_not_match "Controllers: ($WALLET $PRINCIPAL|$PRINCIPAL $WALLET)" - assert_match "Controllers: $PRINCIPAL" + dfx_start + WALLET=$(dfx identity get-wallet) + PRINCIPAL=$(dfx identity get-principal) + assert_command dfx deploy hello_backend --no-wallet + assert_command dfx canister info hello_backend + assert_not_match "Controllers: ($WALLET $PRINCIPAL|$PRINCIPAL $WALLET)" + assert_match "Controllers: $PRINCIPAL" } @test "deploy from a subdirectory" { - dfx_new hello - dfx_start - install_asset greet + dfx_new hello + dfx_start + install_asset greet - ( - cd src - assert_command dfx deploy - assert_match "Installing code for" - ) + ( + cd src + assert_command dfx deploy + assert_match "Installing code for" + ) - assert_command dfx canister call hello_backend greet '("Banzai")' - assert_eq '("Hello, Banzai!")' + assert_command dfx canister call hello_backend greet '("Banzai")' + assert_eq '("Hello, Banzai!")' - assert_command dfx deploy - assert_not_match "Installing code for" - assert_match "is already installed" + assert_command dfx deploy + assert_not_match "Installing code for" + assert_match "is already installed" } @test "deploying a dependent doesn't require already-installed dependencies to take args" { - install_asset deploy_deps - dfx_start - assert_command dfx deploy dependency --argument '("dfx")' - touch dependency.mo - assert_command dfx deploy dependent - assert_command dfx canister call dependency greet - assert_match "Hello, dfx!" + install_asset deploy_deps + dfx_start + assert_command dfx deploy dependency --argument '("dfx")' + touch dependency.mo + assert_command dfx deploy dependent + assert_command dfx canister call dependency greet + assert_match "Hello, dfx!" } @test "reinstalling a single Motoko canister with imported dependency works" { - install_asset import_canister - dfx_start - assert_command dfx deploy - assert_command dfx deploy importer --mode reinstall --yes + install_asset import_canister + dfx_start + assert_command dfx deploy + assert_command dfx deploy importer --mode reinstall --yes } @test "deploy succeeds with --specified-id" { - dfx_start - assert_command dfx deploy hello_backend --specified-id n5n4y-3aaaa-aaaaa-p777q-cai - assert_command dfx canister id hello_backend - assert_match n5n4y-3aaaa-aaaaa-p777q-cai + dfx_start + assert_command dfx deploy hello_backend --specified-id n5n4y-3aaaa-aaaaa-p777q-cai + assert_command dfx canister id hello_backend + assert_match n5n4y-3aaaa-aaaaa-p777q-cai } @test "deploy fails if --specified-id without canister_name" { - dfx_start - assert_command_fail dfx deploy --specified-id n5n4y-3aaaa-aaaaa-p777q-cai - assert_match \ + dfx_start + assert_command_fail dfx deploy --specified-id n5n4y-3aaaa-aaaaa-p777q-cai + assert_match \ "error: the following required arguments were not provided: " } @test "deploy does not require wallet if all canisters are created" { - dfx_start - dfx canister create --all --no-wallet - assert_command dfx deploy - assert_not_contains "Creating a wallet canister" - assert_command dfx identity get-wallet - assert_contains "Creating a wallet canister" + dfx_start + dfx canister create --all --no-wallet + assert_command dfx deploy + assert_not_contains "Creating a wallet canister" + assert_command dfx identity get-wallet + assert_contains "Creating a wallet canister" } @test "deploying multiple canisters with arguments fails" { - assert_command_fail dfx deploy --argument hello - assert_contains \ + assert_command_fail dfx deploy --argument hello + assert_contains \ "error: the following required arguments were not provided: " } @test "can deploy gzip wasm" { - jq '.canisters.hello_backend.gzip=true' dfx.json | sponge dfx.json - dfx_start - assert_command dfx deploy - BUILD_HASH="0x$(sha256sum .dfx/local/canisters/hello_backend/hello_backend.wasm.gz | cut -d " " -f 1)" - ONCHAIN_HASH="$(dfx canister info hello_backend | tail -n 1 | cut -d " " -f 3)" - assert_eq "$BUILD_HASH" "$ONCHAIN_HASH" + jq '.canisters.hello_backend.gzip=true' dfx.json | sponge dfx.json + dfx_start + assert_command dfx deploy + BUILD_HASH="0x$(sha256sum .dfx/local/canisters/hello_backend/hello_backend.wasm.gz | cut -d " " -f 1)" + ONCHAIN_HASH="$(dfx canister info hello_backend | tail -n 1 | cut -d " " -f 3)" + assert_eq "$BUILD_HASH" "$ONCHAIN_HASH" } @test "prints the frontend url after deploy" { - dfx_new_frontend hello - dfx_start - assert_command dfx deploy - assert_contains "hello_frontend: http://127.0.0.1" + dfx_new_frontend hello + dfx_start + assert_command dfx deploy + assert_contains "hello_frontend: http://127.0.0.1" } @test "prints the frontend url if 'frontend' section is not present in dfx.json" { - dfx_new_frontend hello - jq 'del(.canisters.hello_frontend.frontend)' dfx.json | sponge dfx.json - dfx_start - assert_command dfx deploy - assert_contains "hello_frontend: http://127.0.0.1" + dfx_new_frontend hello + jq 'del(.canisters.hello_frontend.frontend)' dfx.json | sponge dfx.json + dfx_start + assert_command dfx deploy + assert_contains "hello_frontend: http://127.0.0.1" } @test "prints the frontend url if the frontend section has been removed after initial deployment" { - dfx_new_frontend hello - dfx_start - assert_command dfx deploy - assert_contains "hello_frontend: http://127.0.0.1" - jq 'del(.canisters.hello_frontend.frontend)' dfx.json | sponge dfx.json - assert_command dfx deploy - assert_contains "hello_frontend: http://127.0.0.1" + dfx_new_frontend hello + dfx_start + assert_command dfx deploy + assert_contains "hello_frontend: http://127.0.0.1" + jq 'del(.canisters.hello_frontend.frontend)' dfx.json | sponge dfx.json + assert_command dfx deploy + assert_contains "hello_frontend: http://127.0.0.1" } diff --git a/e2e/tests-dfx/deps.bash b/e2e/tests-dfx/deps.bash index e85ca10a9b..540aa1329a 100644 --- a/e2e/tests-dfx/deps.bash +++ b/e2e/tests-dfx/deps.bash @@ -3,13 +3,13 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - stop_webserver - dfx_stop - standard_teardown + stop_webserver + dfx_stop + standard_teardown } CANISTER_ID_A="yofga-2qaaa-aaaaa-aabsq-cai" @@ -17,441 +17,441 @@ CANISTER_ID_B="yhgn4-myaaa-aaaaa-aabta-cai" CANISTER_ID_C="yahli-baaaa-aaaaa-aabtq-cai" setup_onchain() { - install_asset deps + install_asset deps - # start a webserver to host wasm files - mkdir www - start_webserver --directory www + # start a webserver to host wasm files + mkdir www + start_webserver --directory www - cd onchain || exit + cd onchain || exit - jq '.canisters.a.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/a.wasm"'"' dfx.json | sponge dfx.json - jq '.canisters.b.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/b.wasm.gz"'"' dfx.json | sponge dfx.json - jq '.canisters.c.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/c.wasm"'"' dfx.json | sponge dfx.json + jq '.canisters.a.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/a.wasm"'"' dfx.json | sponge dfx.json + jq '.canisters.b.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/b.wasm.gz"'"' dfx.json | sponge dfx.json + jq '.canisters.c.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/c.wasm"'"' dfx.json | sponge dfx.json - dfx canister create a --specified-id "$CANISTER_ID_A" - dfx canister create b --specified-id "$CANISTER_ID_B" - dfx canister create c --specified-id "$CANISTER_ID_C" - dfx build + dfx canister create a --specified-id "$CANISTER_ID_A" + dfx canister create b --specified-id "$CANISTER_ID_B" + dfx canister create c --specified-id "$CANISTER_ID_C" + dfx build - dfx canister install a --argument 1 - dfx canister install b - dfx canister install c --argument 3 + dfx canister install a --argument 1 + dfx canister install b + dfx canister install c --argument 3 - # copy wasm files to web server dir - cp .dfx/local/canisters/a/a.wasm ../www/a.wasm - cp .dfx/local/canisters/b/b.wasm.gz ../www/b.wasm.gz - cp .dfx/local/canisters/c/c.wasm ../www/c.wasm + # copy wasm files to web server dir + cp .dfx/local/canisters/a/a.wasm ../www/a.wasm + cp .dfx/local/canisters/b/b.wasm.gz ../www/b.wasm.gz + cp .dfx/local/canisters/c/c.wasm ../www/c.wasm - cd .. || exit + cd .. || exit } @test "dfx build can write required metadata for pullable" { - dfx_start - - install_asset deps - - cd onchain - assert_command dfx canister create --all - assert_command dfx build - assert_command ic-wasm .dfx/local/canisters/c/c.wasm metadata - assert_match "icp:public candid:service" - assert_match "icp:public dfx" - - ic-wasm .dfx/local/canisters/c/c.wasm metadata dfx > c_dfx.json - assert_command jq -r '.pullable.wasm_url' c_dfx.json - assert_eq "http://example.com/c.wasm" "$output" - assert_command jq -r '.pullable.dependencies | length' c_dfx.json - assert_eq 1 "$output" - assert_command jq -r '.pullable.dependencies | first' c_dfx.json - assert_eq "$CANISTER_ID_A" "$output" - assert_command jq -r '.pullable.init_guide' c_dfx.json - assert_eq "A natural number, e.g. 20." "$output" + dfx_start + + install_asset deps + + cd onchain + assert_command dfx canister create --all + assert_command dfx build + assert_command ic-wasm .dfx/local/canisters/c/c.wasm metadata + assert_match "icp:public candid:service" + assert_match "icp:public dfx" + + ic-wasm .dfx/local/canisters/c/c.wasm metadata dfx > c_dfx.json + assert_command jq -r '.pullable.wasm_url' c_dfx.json + assert_eq "http://example.com/c.wasm" "$output" + assert_command jq -r '.pullable.dependencies | length' c_dfx.json + assert_eq 1 "$output" + assert_command jq -r '.pullable.dependencies | first' c_dfx.json + assert_eq "$CANISTER_ID_A" "$output" + assert_command jq -r '.pullable.init_guide' c_dfx.json + assert_eq "A natural number, e.g. 20." "$output" } @test "dfx deps pull can resolve dependencies from on-chain canister metadata" { - # ic-ref has different behavior than the replica: - # it doesn't differ whether the canister not exist or the metadata not exist - dfx_start + # ic-ref has different behavior than the replica: + # it doesn't differ whether the canister not exist or the metadata not exist + dfx_start - install_asset deps + install_asset deps - # 1. success path - ## 1.1. prepare "onchain" canisters - # a -> [] - # b -> [a] - # c -> [a] - # app -> [a, b] + # 1. success path + ## 1.1. prepare "onchain" canisters + # a -> [] + # b -> [a] + # c -> [a] + # app -> [a, b] - cd onchain + cd onchain - dfx canister create a --specified-id "$CANISTER_ID_A" - dfx canister create b --specified-id "$CANISTER_ID_B" - dfx canister create c --specified-id "$CANISTER_ID_C" + dfx canister create a --specified-id "$CANISTER_ID_A" + dfx canister create b --specified-id "$CANISTER_ID_B" + dfx canister create c --specified-id "$CANISTER_ID_C" - dfx deploy a --argument 1 - dfx deploy b - dfx deploy c --argument 3 + dfx deploy a --argument 1 + dfx deploy b + dfx deploy c --argument 3 - ## 1.2. pull onchain canisters in "app" project - cd ../app + ## 1.2. pull onchain canisters in "app" project + cd ../app - assert_command_fail dfx deps pull --network local # the overall pull fail but succeed to fetch and parse `dfx:deps` recursively - assert_contains "Fetching dependencies of canister $CANISTER_ID_B... + assert_command_fail dfx deps pull --network local # the overall pull fail but succeed to fetch and parse `dfx:deps` recursively + assert_contains "Fetching dependencies of canister $CANISTER_ID_B... Fetching dependencies of canister $CANISTER_ID_C... Fetching dependencies of canister $CANISTER_ID_A... Found 3 dependencies: $CANISTER_ID_A $CANISTER_ID_B $CANISTER_ID_C" - assert_occurs 1 "Fetching dependencies of canister $CANISTER_ID_A..." # common dependency onchain_a is pulled only once - assert_contains "Pulling canister $CANISTER_ID_A... + assert_occurs 1 "Fetching dependencies of canister $CANISTER_ID_A..." # common dependency onchain_a is pulled only once + assert_contains "Pulling canister $CANISTER_ID_A... ERROR: Failed to pull canister $CANISTER_ID_A. Failed to download from url: http://example.com/a.wasm." - assert_contains "Pulling canister $CANISTER_ID_B... + assert_contains "Pulling canister $CANISTER_ID_B... ERROR: Failed to pull canister $CANISTER_ID_B. Failed to download from url: http://example.com/b.wasm.gz." - assert_contains "Pulling canister $CANISTER_ID_C... + assert_contains "Pulling canister $CANISTER_ID_C... ERROR: Failed to pull canister $CANISTER_ID_C. Failed to download from url: http://example.com/c.wasm." - # 3. sad path: if the canister is not present on-chain - cd ../onchain - dfx build c - dfx canister install c --argument 3 --mode=reinstall --yes # reinstall the correct canister c - dfx canister uninstall-code a + # 3. sad path: if the canister is not present on-chain + cd ../onchain + dfx build c + dfx canister install c --argument 3 --mode=reinstall --yes # reinstall the correct canister c + dfx canister uninstall-code a - cd ../app - assert_command_fail dfx deps pull --network local - assert_contains "Failed to get dependencies of canister $CANISTER_ID_A." + cd ../app + assert_command_fail dfx deps pull --network local + assert_contains "Failed to get dependencies of canister $CANISTER_ID_A." - cd ../onchain - dfx canister stop a - dfx canister delete a + cd ../onchain + dfx canister stop a + dfx canister delete a - cd ../app - assert_command_fail dfx deps pull --network local - assert_contains "Failed to get dependencies of canister $CANISTER_ID_A." + cd ../app + assert_command_fail dfx deps pull --network local + assert_contains "Failed to get dependencies of canister $CANISTER_ID_A." } @test "dfx deps pull can download wasm and candids to shared cache and generate pulled.json" { - use_test_specific_cache_root # dfx deps pull will download files to cache - - PULLED_DIR="$DFX_CACHE_ROOT/.cache/dfinity/pulled/" - assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_B/canister.wasm.gz" - assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_A/canister.wasm" - assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_C/canister.wasm" - assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_B/service.did" - assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_A/service.did" - assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_C/service.did" - - # start a "mainnet" replica which host the onchain canisters - dfx_start - - setup_onchain - - # TODO: test gzipped wasm can be pulled when we have "gzip" option in dfx.json (SDK-1102) - - # pull canisters in app project - cd app - assert_file_not_exists "deps/pulled.json" - - assert_command dfx deps pull --network local - assert_file_exists "$PULLED_DIR/$CANISTER_ID_B/canister.wasm.gz" - assert_file_exists "$PULLED_DIR/$CANISTER_ID_A/canister.wasm" - assert_file_exists "$PULLED_DIR/$CANISTER_ID_C/canister.wasm" - assert_file_exists "$PULLED_DIR/$CANISTER_ID_B/service.did" - assert_file_exists "$PULLED_DIR/$CANISTER_ID_A/service.did" - assert_file_exists "$PULLED_DIR/$CANISTER_ID_C/service.did" - - cd deps - assert_file_exists "pulled.json" - assert_file_exists "candid/$CANISTER_ID_B.did" - assert_file_exists "candid/$CANISTER_ID_C.did" - assert_eq 5 "$(jq -r '.canisters | keys' pulled.json | wc -l | tr -d ' ')" # 3 canisters + 2 lines of '[' and ']' - assert_command jq -r '.canisters."'"$CANISTER_ID_A"'".init_guide' pulled.json - assert_eq "A natural number, e.g. 10." "$output" - assert_command jq -r '.canisters."'"$CANISTER_ID_B"'".name' pulled.json - assert_eq "dep_b" "$output" - assert_command jq -r '.canisters."'"$CANISTER_ID_C"'".name' pulled.json - assert_eq "dep_c" "$output" - cd ../ - - assert_command dfx deps pull --network local -vvv - assert_contains "The canister wasm was found in the cache." # cache hit - - # sad path 1: wasm hash doesn't match on chain - rm -r "${PULLED_DIR:?}/" - cd ../onchain - cp .dfx/local/canisters/c/c.wasm ../www/a.wasm - - cd ../app - assert_command_fail dfx deps pull --network local - assert_contains "Failed to pull canister $CANISTER_ID_A." - assert_contains "Hash mismatch." - - # sad path 2: url server doesn't have the file - rm -r "${PULLED_DIR:?}/" - rm ../www/a.wasm - - assert_command_fail dfx deps pull --network local - assert_contains "Failed to pull canister $CANISTER_ID_A." - assert_contains "Failed to download from url:" + use_test_specific_cache_root # dfx deps pull will download files to cache + + PULLED_DIR="$DFX_CACHE_ROOT/.cache/dfinity/pulled/" + assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_B/canister.wasm.gz" + assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_A/canister.wasm" + assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_C/canister.wasm" + assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_B/service.did" + assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_A/service.did" + assert_file_not_exists "$PULLED_DIR/$CANISTER_ID_C/service.did" + + # start a "mainnet" replica which host the onchain canisters + dfx_start + + setup_onchain + + # TODO: test gzipped wasm can be pulled when we have "gzip" option in dfx.json (SDK-1102) + + # pull canisters in app project + cd app + assert_file_not_exists "deps/pulled.json" + + assert_command dfx deps pull --network local + assert_file_exists "$PULLED_DIR/$CANISTER_ID_B/canister.wasm.gz" + assert_file_exists "$PULLED_DIR/$CANISTER_ID_A/canister.wasm" + assert_file_exists "$PULLED_DIR/$CANISTER_ID_C/canister.wasm" + assert_file_exists "$PULLED_DIR/$CANISTER_ID_B/service.did" + assert_file_exists "$PULLED_DIR/$CANISTER_ID_A/service.did" + assert_file_exists "$PULLED_DIR/$CANISTER_ID_C/service.did" + + cd deps + assert_file_exists "pulled.json" + assert_file_exists "candid/$CANISTER_ID_B.did" + assert_file_exists "candid/$CANISTER_ID_C.did" + assert_eq 5 "$(jq -r '.canisters | keys' pulled.json | wc -l | tr -d ' ')" # 3 canisters + 2 lines of '[' and ']' + assert_command jq -r '.canisters."'"$CANISTER_ID_A"'".init_guide' pulled.json + assert_eq "A natural number, e.g. 10." "$output" + assert_command jq -r '.canisters."'"$CANISTER_ID_B"'".name' pulled.json + assert_eq "dep_b" "$output" + assert_command jq -r '.canisters."'"$CANISTER_ID_C"'".name' pulled.json + assert_eq "dep_c" "$output" + cd ../ + + assert_command dfx deps pull --network local -vvv + assert_contains "The canister wasm was found in the cache." # cache hit + + # sad path 1: wasm hash doesn't match on chain + rm -r "${PULLED_DIR:?}/" + cd ../onchain + cp .dfx/local/canisters/c/c.wasm ../www/a.wasm + + cd ../app + assert_command_fail dfx deps pull --network local + assert_contains "Failed to pull canister $CANISTER_ID_A." + assert_contains "Hash mismatch." + + # sad path 2: url server doesn't have the file + rm -r "${PULLED_DIR:?}/" + rm ../www/a.wasm + + assert_command_fail dfx deps pull --network local + assert_contains "Failed to pull canister $CANISTER_ID_A." + assert_contains "Failed to download from url:" } @test "dfx deps pull can check hash when dfx:wasm_hash specified" { - use_test_specific_cache_root # dfx deps pull will download files to cache + use_test_specific_cache_root # dfx deps pull will download files to cache - # start a "mainnet" replica which host the onchain canisters - dfx_start + # start a "mainnet" replica which host the onchain canisters + dfx_start - install_asset deps + install_asset deps - # start a webserver to host wasm files - mkdir www - start_webserver --directory www + # start a webserver to host wasm files + mkdir www + start_webserver --directory www - cd onchain + cd onchain - jq '.canisters.a.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/a.wasm"'"' dfx.json | sponge dfx.json - jq '.canisters.b.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/b.wasm.gz"'"' dfx.json | sponge dfx.json - jq '.canisters.c.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/c.wasm"'"' dfx.json | sponge dfx.json + jq '.canisters.a.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/a.wasm"'"' dfx.json | sponge dfx.json + jq '.canisters.b.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/b.wasm.gz"'"' dfx.json | sponge dfx.json + jq '.canisters.c.pullable.wasm_url="'"http://localhost:$E2E_WEB_SERVER_PORT/c.wasm"'"' dfx.json | sponge dfx.json - dfx canister create a --specified-id "$CANISTER_ID_A" - dfx canister create b --specified-id "$CANISTER_ID_B" - dfx canister create c --specified-id "$CANISTER_ID_C" - dfx build + dfx canister create a --specified-id "$CANISTER_ID_A" + dfx canister create b --specified-id "$CANISTER_ID_B" + dfx canister create c --specified-id "$CANISTER_ID_C" + dfx build - # copy wasm files to web server dir - cp .dfx/local/canisters/a/a.wasm ../www/a.wasm - cp .dfx/local/canisters/b/b.wasm.gz ../www/b.wasm.gz - cp .dfx/local/canisters/c/c.wasm ../www/c.wasm + # copy wasm files to web server dir + cp .dfx/local/canisters/a/a.wasm ../www/a.wasm + cp .dfx/local/canisters/b/b.wasm.gz ../www/b.wasm.gz + cp .dfx/local/canisters/c/c.wasm ../www/c.wasm - CUSTOM_HASH="$(sha256sum .dfx/local/canisters/a/a.wasm | cut -d " " -f 1)" - jq '.canisters.a.pullable.wasm_hash="'"$CUSTOM_HASH"'"' dfx.json | sponge dfx.json - dfx build a # .dfx/local/canisters/a/a.wasm is replaced. The new wasm has wasm_hash defined and will be installed. + CUSTOM_HASH="$(sha256sum .dfx/local/canisters/a/a.wasm | cut -d " " -f 1)" + jq '.canisters.a.pullable.wasm_hash="'"$CUSTOM_HASH"'"' dfx.json | sponge dfx.json + dfx build a # .dfx/local/canisters/a/a.wasm is replaced. The new wasm has wasm_hash defined and will be installed. - # cd ../../../ - dfx canister install a --argument 1 - dfx canister install b - dfx canister install c --argument 3 + # cd ../../../ + dfx canister install a --argument 1 + dfx canister install b + dfx canister install c --argument 3 - # pull canisters in app project - cd ../app - assert_file_not_exists "deps/pulled.json" + # pull canisters in app project + cd ../app + assert_file_not_exists "deps/pulled.json" - assert_command dfx deps pull --network local -vvv - assert_contains "Canister $CANISTER_ID_A specified a custom hash:" + assert_command dfx deps pull --network local -vvv + assert_contains "Canister $CANISTER_ID_A specified a custom hash:" - # error case: hash mismatch - PULLED_DIR="$DFX_CACHE_ROOT/.cache/dfinity/pulled/" - rm -r "${PULLED_DIR:?}/" - cd ../onchain - cp .dfx/local/canisters/a/a.wasm ../www/a.wasm # now the webserver has the onchain version of canister_a which won't match wasm_hash + # error case: hash mismatch + PULLED_DIR="$DFX_CACHE_ROOT/.cache/dfinity/pulled/" + rm -r "${PULLED_DIR:?}/" + cd ../onchain + cp .dfx/local/canisters/a/a.wasm ../www/a.wasm # now the webserver has the onchain version of canister_a which won't match wasm_hash - cd ../app - assert_command_fail dfx deps pull --network local -vvv - assert_contains "Canister $CANISTER_ID_A specified a custom hash:" - assert_contains "Failed to pull canister $CANISTER_ID_A." - assert_contains "Hash mismatch." + cd ../app + assert_command_fail dfx deps pull --network local -vvv + assert_contains "Canister $CANISTER_ID_A specified a custom hash:" + assert_contains "Failed to pull canister $CANISTER_ID_A." + assert_contains "Hash mismatch." } @test "dfx deps init works" { - use_test_specific_cache_root # dfx deps pull will download files to cache + use_test_specific_cache_root # dfx deps pull will download files to cache - # start a "mainnet" replica which host the onchain canisters - dfx_start + # start a "mainnet" replica which host the onchain canisters + dfx_start - setup_onchain + setup_onchain - # pull canisters in app project - cd app - assert_command dfx deps pull --network local + # pull canisters in app project + cd app + assert_command dfx deps pull --network local - # stop the "mainnet" replica - dfx_stop + # stop the "mainnet" replica + dfx_stop - assert_command dfx deps init - assert_contains "The following canister(s) require an init argument. Please run \`dfx deps init \` to set them individually:" - assert_contains "$CANISTER_ID_A" - assert_contains "$CANISTER_ID_C (dep_c)" + assert_command dfx deps init + assert_contains "The following canister(s) require an init argument. Please run \`dfx deps init \` to set them individually:" + assert_contains "$CANISTER_ID_A" + assert_contains "$CANISTER_ID_C (dep_c)" - assert_command dfx deps init "$CANISTER_ID_A" --argument 11 - assert_command dfx deps init dep_c --argument 33 + assert_command dfx deps init "$CANISTER_ID_A" --argument 11 + assert_command dfx deps init dep_c --argument 33 - # The argument is the hex string of '("abc")' which doesn't type check - # However, passing raw argument will bypass the type check so following command succeed - assert_command dfx deps init "$CANISTER_ID_A" --argument "4449444c00017103616263" --argument-type raw - assert_command jq -r '.canisters."'"$CANISTER_ID_A"'".arg_raw' deps/init.json - assert_eq "4449444c00017103616263" "$output" + # The argument is the hex string of '("abc")' which doesn't type check + # However, passing raw argument will bypass the type check so following command succeed + assert_command dfx deps init "$CANISTER_ID_A" --argument "4449444c00017103616263" --argument-type raw + assert_command jq -r '.canisters."'"$CANISTER_ID_A"'".arg_raw' deps/init.json + assert_eq "4449444c00017103616263" "$output" - # error cases - ## require init arguments but not provide - assert_command_fail dfx deps init "$CANISTER_ID_A" - assert_contains "Canister $CANISTER_ID_A requires an init argument" + # error cases + ## require init arguments but not provide + assert_command_fail dfx deps init "$CANISTER_ID_A" + assert_contains "Canister $CANISTER_ID_A requires an init argument" - ## wrong type - assert_command_fail dfx deps init "$CANISTER_ID_A" --argument '("abc")' - assert_contains "Invalid data: Unable to serialize Candid values: type mismatch: \"abc\" cannot be of type nat" + ## wrong type + assert_command_fail dfx deps init "$CANISTER_ID_A" --argument '("abc")' + assert_contains "Invalid data: Unable to serialize Candid values: type mismatch: \"abc\" cannot be of type nat" - ## require no init argument but provide - assert_command_fail dfx deps init dep_b --argument 1 - assert_contains "Canister $CANISTER_ID_B (dep_b) takes no init argument. Please rerun without \`--argument\`" + ## require no init argument but provide + assert_command_fail dfx deps init dep_b --argument 1 + assert_contains "Canister $CANISTER_ID_B (dep_b) takes no init argument. Please rerun without \`--argument\`" - ## require init arguments but not provide - assert_command_fail dfx deps init dep_c - assert_contains "Canister $CANISTER_ID_C (dep_c) requires an init argument. The following info might be helpful: + ## require init arguments but not provide + assert_command_fail dfx deps init dep_c + assert_contains "Canister $CANISTER_ID_C (dep_c) requires an init argument. The following info might be helpful: init => A natural number, e.g. 20. candid:args => (nat)" - ## canister ID not in pulled.json - assert_command_fail dfx deps init aaaaa-aa - assert_contains "Could not find aaaaa-aa in pulled.json" + ## canister ID not in pulled.json + assert_command_fail dfx deps init aaaaa-aa + assert_contains "Could not find aaaaa-aa in pulled.json" } @test "dfx deps deploy works" { - use_test_specific_cache_root # dfx deps pull will download files to cache - - # start a "mainnet" replica which host the onchain canisters - dfx_start - - setup_onchain - - # pull canisters in app project - cd app - assert_command dfx deps pull --network local - - # delete onchain canisters so that the replica has no canisters as a clean local replica - cd ../onchain - dfx canister stop a - dfx canister delete a - dfx canister stop b - dfx canister delete b - dfx canister stop c - dfx canister delete c - - cd ../app - assert_command dfx deps init # b is set here - assert_command dfx deps init "$CANISTER_ID_A" --argument 11 - assert_command dfx deps init "$CANISTER_ID_C" --argument 33 - - # deploy all - assert_command dfx deps deploy - assert_contains "Creating canister: $CANISTER_ID_A + use_test_specific_cache_root # dfx deps pull will download files to cache + + # start a "mainnet" replica which host the onchain canisters + dfx_start + + setup_onchain + + # pull canisters in app project + cd app + assert_command dfx deps pull --network local + + # delete onchain canisters so that the replica has no canisters as a clean local replica + cd ../onchain + dfx canister stop a + dfx canister delete a + dfx canister stop b + dfx canister delete b + dfx canister stop c + dfx canister delete c + + cd ../app + assert_command dfx deps init # b is set here + assert_command dfx deps init "$CANISTER_ID_A" --argument 11 + assert_command dfx deps init "$CANISTER_ID_C" --argument 33 + + # deploy all + assert_command dfx deps deploy + assert_contains "Creating canister: $CANISTER_ID_A Installing canister: $CANISTER_ID_A" - assert_contains "Creating canister: $CANISTER_ID_B (dep_b) + assert_contains "Creating canister: $CANISTER_ID_B (dep_b) Installing canister: $CANISTER_ID_B (dep_b)" - assert_contains "Creating canister: $CANISTER_ID_C (dep_c) + assert_contains "Creating canister: $CANISTER_ID_C (dep_c) Installing canister: $CANISTER_ID_C (dep_c)" - # by name in dfx.json - assert_command dfx deps deploy dep_b - assert_contains "Installing canister: $CANISTER_ID_B (dep_b)" # dep_p has been created before, so we only see "Installing ..." here - - # by canister id - assert_command dfx deps deploy $CANISTER_ID_A - assert_contains "Installing canister: $CANISTER_ID_A" - - # deployed pull dependencies can be stopped and deleted - assert_command dfx canister stop dep_b --identity anonymous - assert_command dfx canister delete dep_b --identity anonymous - - assert_command dfx canister stop $CANISTER_ID_A --identity anonymous - assert_command dfx canister delete $CANISTER_ID_A --identity anonymous - - # error cases - ## set wrong init argument - assert_command dfx deps init "$CANISTER_ID_A" --argument "4449444c00017103616263" --argument-type raw - assert_command_fail dfx deps deploy - assert_contains "Failed to install canister $CANISTER_ID_A" - - ## canister ID not in pulled.json - assert_command_fail dfx deps deploy aaaaa-aa - assert_contains "Could not find aaaaa-aa in pulled.json" - - ## no init.json - rm deps/init.json - assert_command_fail dfx deps deploy - assert_contains "Failed to read init.json. Please run \`dfx deps init\`." - - ## forgot to set init argument for some dependencies - assert_command dfx deps init # b is set here - assert_command_fail dfx deps deploy "$CANISTER_ID_A" - assert_contains "Failed to create and install canister $CANISTER_ID_A" - assert_contains "Failed to find $CANISTER_ID_A entry in init.json. Please run \`dfx deps init $CANISTER_ID_A\`." + # by name in dfx.json + assert_command dfx deps deploy dep_b + assert_contains "Installing canister: $CANISTER_ID_B (dep_b)" # dep_p has been created before, so we only see "Installing ..." here + + # by canister id + assert_command dfx deps deploy $CANISTER_ID_A + assert_contains "Installing canister: $CANISTER_ID_A" + + # deployed pull dependencies can be stopped and deleted + assert_command dfx canister stop dep_b --identity anonymous + assert_command dfx canister delete dep_b --identity anonymous + + assert_command dfx canister stop $CANISTER_ID_A --identity anonymous + assert_command dfx canister delete $CANISTER_ID_A --identity anonymous + + # error cases + ## set wrong init argument + assert_command dfx deps init "$CANISTER_ID_A" --argument "4449444c00017103616263" --argument-type raw + assert_command_fail dfx deps deploy + assert_contains "Failed to install canister $CANISTER_ID_A" + + ## canister ID not in pulled.json + assert_command_fail dfx deps deploy aaaaa-aa + assert_contains "Could not find aaaaa-aa in pulled.json" + + ## no init.json + rm deps/init.json + assert_command_fail dfx deps deploy + assert_contains "Failed to read init.json. Please run \`dfx deps init\`." + + ## forgot to set init argument for some dependencies + assert_command dfx deps init # b is set here + assert_command_fail dfx deps deploy "$CANISTER_ID_A" + assert_contains "Failed to create and install canister $CANISTER_ID_A" + assert_contains "Failed to find $CANISTER_ID_A entry in init.json. Please run \`dfx deps init $CANISTER_ID_A\`." } @test "dfx deps pulled dependencies work with app canister" { - use_test_specific_cache_root # dfx deps pull will download files to cache - - # start a "mainnet" replica which host the onchain canisters - dfx_start - - setup_onchain - - # pull canisters in app project - cd app - assert_command dfx deps pull --network local - - # delete onchain canisters so that the replica has no canisters as a clean local replica - cd ../onchain - dfx canister stop a - dfx canister delete a - dfx canister stop b - dfx canister delete b - dfx canister stop c - dfx canister delete c - - cd ../app - assert_command_fail dfx canister create dep_b - assert_contains "dep_b is a pull dependency. Please deploy it using \`dfx deps deploy dep_b\`" - assert_command dfx canister create app - - assert_command dfx canister create --all - assert_contains "There are pull dependencies defined in dfx.json. Please deploy them using \`dfx deps deploy\`." - - assert_command dfx build app - assert_command dfx canister install app - - # pulled dependency dep_b hasn't been deployed on local replica - assert_command_fail dfx canister call app get_b - assert_contains "Canister $CANISTER_ID_B not found" - - assert_command dfx deps init - assert_command dfx deps init "$CANISTER_ID_A" --argument 11 - assert_command dfx deps init "$CANISTER_ID_C" --argument 33 - assert_command dfx deps deploy - - assert_command dfx canister call app get_b - assert_eq "(2 : nat)" "$output" - assert_command dfx canister call app get_c - assert_eq "(33 : nat)" "$output" # corresponding to "--argument 33" above - assert_command dfx canister call app get_b_times_a - assert_eq "(22 : nat)" "$output" # 2 * 11 - assert_command dfx canister call app get_c_times_a - assert_eq "(363 : nat)" "$output" # 33 * 11 - - # start a clean local replica - dfx canister stop app - dfx canister delete app - assert_command dfx deploy # only deploy app canister + use_test_specific_cache_root # dfx deps pull will download files to cache + + # start a "mainnet" replica which host the onchain canisters + dfx_start + + setup_onchain + + # pull canisters in app project + cd app + assert_command dfx deps pull --network local + + # delete onchain canisters so that the replica has no canisters as a clean local replica + cd ../onchain + dfx canister stop a + dfx canister delete a + dfx canister stop b + dfx canister delete b + dfx canister stop c + dfx canister delete c + + cd ../app + assert_command_fail dfx canister create dep_b + assert_contains "dep_b is a pull dependency. Please deploy it using \`dfx deps deploy dep_b\`" + assert_command dfx canister create app + + assert_command dfx canister create --all + assert_contains "There are pull dependencies defined in dfx.json. Please deploy them using \`dfx deps deploy\`." + + assert_command dfx build app + assert_command dfx canister install app + + # pulled dependency dep_b hasn't been deployed on local replica + assert_command_fail dfx canister call app get_b + assert_contains "Canister $CANISTER_ID_B not found" + + assert_command dfx deps init + assert_command dfx deps init "$CANISTER_ID_A" --argument 11 + assert_command dfx deps init "$CANISTER_ID_C" --argument 33 + assert_command dfx deps deploy + + assert_command dfx canister call app get_b + assert_eq "(2 : nat)" "$output" + assert_command dfx canister call app get_c + assert_eq "(33 : nat)" "$output" # corresponding to "--argument 33" above + assert_command dfx canister call app get_b_times_a + assert_eq "(22 : nat)" "$output" # 2 * 11 + assert_command dfx canister call app get_c_times_a + assert_eq "(363 : nat)" "$output" # 33 * 11 + + # start a clean local replica + dfx canister stop app + dfx canister delete app + assert_command dfx deploy # only deploy app canister } @test "dfx deps does nothing in a project has no pull dependencies" { - dfx_new empty + dfx_new empty - # verify the help message - assert_command dfx deps pull -h - assert_contains "Pull canisters upon which the project depends. This command connects to the \"ic\" mainnet by default. + # verify the help message + assert_command dfx deps pull -h + assert_contains "Pull canisters upon which the project depends. This command connects to the \"ic\" mainnet by default. You can still choose other network by setting \`--network\`" - assert_command dfx deps pull - assert_contains "There are no pull dependencies defined in dfx.json" - assert_command dfx deps init - assert_contains "There are no pull dependencies defined in dfx.json" - assert_command dfx deps deploy - assert_contains "There are no pull dependencies defined in dfx.json" - - assert_directory_not_exists "deps" + assert_command dfx deps pull + assert_contains "There are no pull dependencies defined in dfx.json" + assert_command dfx deps init + assert_contains "There are no pull dependencies defined in dfx.json" + assert_command dfx deps deploy + assert_contains "There are no pull dependencies defined in dfx.json" + + assert_directory_not_exists "deps" } diff --git a/e2e/tests-dfx/describe_local_network.bash b/e2e/tests-dfx/describe_local_network.bash index 587991dc1a..4e54675441 100644 --- a/e2e/tests-dfx/describe_local_network.bash +++ b/e2e/tests-dfx/describe_local_network.bash @@ -3,124 +3,124 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx start with disabled canister http" { - create_networks_json - echo "{}" | jq '.local.canister_http.enabled=false' >"$E2E_NETWORKS_JSON" - assert_command dfx start --host 127.0.0.1:0 --background --verbose + create_networks_json + echo "{}" | jq '.local.canister_http.enabled=false' >"$E2E_NETWORKS_JSON" + assert_command dfx start --host 127.0.0.1:0 --background --verbose - assert_match "canister http: disabled \(default: enabled\)" + assert_match "canister http: disabled \(default: enabled\)" } @test "dfx start with a nonstandard subnet type" { - create_networks_json - echo "{}" | jq '.local.replica.subnet_type="verifiedapplication"' >"$E2E_NETWORKS_JSON" + create_networks_json + echo "{}" | jq '.local.replica.subnet_type="verifiedapplication"' >"$E2E_NETWORKS_JSON" - assert_command dfx start --host 127.0.0.1:0 --background --verbose + assert_command dfx start --host 127.0.0.1:0 --background --verbose - assert_match "subnet type: VerifiedApplication \(default: Application\)" + assert_match "subnet type: VerifiedApplication \(default: Application\)" } @test "dfx start with nonstandard bitcoin node" { - assert_command dfx start --host 127.0.0.1:0 --background --bitcoin-node 192.168.0.1:18000 --verbose + assert_command dfx start --host 127.0.0.1:0 --background --bitcoin-node 192.168.0.1:18000 --verbose - assert_match "bitcoin: enabled \(default: disabled\)" - assert_match "nodes: \[192.168.0.1:18000\] \(default: \[127.0.0.1:18444\]\)" + assert_match "bitcoin: enabled \(default: disabled\)" + assert_match "nodes: \[192.168.0.1:18000\] \(default: \[127.0.0.1:18444\]\)" } @test "dfx start enabling bitcoin" { - assert_command dfx start --host 127.0.0.1:0 --background --enable-bitcoin --verbose + assert_command dfx start --host 127.0.0.1:0 --background --enable-bitcoin --verbose - assert_match "bitcoin: enabled \(default: disabled\)" + assert_match "bitcoin: enabled \(default: disabled\)" } @test "dfx start in a project without a network definition" { - mkdir some-project - cd some-project - echo "{}" >dfx.json - - # we have to pass 0 for port to avoid conflicts - assert_command dfx start --host 127.0.0.1:0 --background --verbose - - assert_match "There is no project-specific network 'local' defined in .*/some-project/dfx.json." - assert_match "Using the default definition for the 'local' shared network because $DFX_CONFIG_ROOT/.config/dfx/networks.json does not exist." - - assert_match "Local server configuration:" - assert_match "bind address: 127.0.0.1:0 \(default: 127.0.0.1:4943\)" - assert_match "bitcoin: disabled" - assert_match "canister http: enabled" - assert_match "subnet type: Application" - assert_match "scope: shared" + mkdir some-project + cd some-project + echo "{}" >dfx.json + + # we have to pass 0 for port to avoid conflicts + assert_command dfx start --host 127.0.0.1:0 --background --verbose + + assert_match "There is no project-specific network 'local' defined in .*/some-project/dfx.json." + assert_match "Using the default definition for the 'local' shared network because $DFX_CONFIG_ROOT/.config/dfx/networks.json does not exist." + + assert_match "Local server configuration:" + assert_match "bind address: 127.0.0.1:0 \(default: 127.0.0.1:4943\)" + assert_match "bitcoin: disabled" + assert_match "canister http: enabled" + assert_match "subnet type: Application" + assert_match "scope: shared" } @test "dfx start outside of a project with default configuration" { - assert_command dfx start --host 127.0.0.1:0 --background --verbose + assert_command dfx start --host 127.0.0.1:0 --background --verbose - assert_match "There is no project-specific network 'local' because there is no project \(no dfx.json\)." - assert_match "Using the default definition for the 'local' shared network because $DFX_CONFIG_ROOT/.config/dfx/networks.json does not exist." + assert_match "There is no project-specific network 'local' because there is no project \(no dfx.json\)." + assert_match "Using the default definition for the 'local' shared network because $DFX_CONFIG_ROOT/.config/dfx/networks.json does not exist." } @test "dfx start outside of a project with a shared configuration file" { - create_networks_json + create_networks_json - assert_command dfx start --background --verbose + assert_command dfx start --background --verbose - assert_match "There is no project-specific network 'local' because there is no project \(no dfx.json\)." - assert_match "Using the default definition for the 'local' shared network because $DFX_CONFIG_ROOT/.config/dfx/networks.json does not define it." + assert_match "There is no project-specific network 'local' because there is no project \(no dfx.json\)." + assert_match "Using the default definition for the 'local' shared network because $DFX_CONFIG_ROOT/.config/dfx/networks.json does not define it." } @test "dfx start outside of a project with a shared configuration file that defines the local network" { - create_networks_json - echo "{}" | jq '.local.bind="127.0.0.1:0"' >"$E2E_NETWORKS_JSON" + create_networks_json + echo "{}" | jq '.local.bind="127.0.0.1:0"' >"$E2E_NETWORKS_JSON" - assert_command dfx start --background --verbose + assert_command dfx start --background --verbose - assert_match "There is no project-specific network 'local' because there is no project \(no dfx.json\)." - assert_match "Using shared network 'local' defined in $DFX_CONFIG_ROOT/.config/dfx/networks.json" + assert_match "There is no project-specific network 'local' because there is no project \(no dfx.json\)." + assert_match "Using shared network 'local' defined in $DFX_CONFIG_ROOT/.config/dfx/networks.json" } @test "dfx start describes default project-specific network" { - # almost default: use a dynamic port - echo "{}" | jq '.networks.local.bind="127.0.0.1:0"' > dfx.json - - assert_command dfx start --background --verbose - - assert_match "Local server configuration:" - assert_match "bind address: 127.0.0.1:0 \(default: 127.0.0.1:8000\)" - assert_match "bitcoin: disabled" - assert_match "canister http: enabled" - assert_match "subnet type: Application" - assert_match "data directory: .*/working-dir/.dfx/network/local" - assert_match "scope: project" + # almost default: use a dynamic port + echo "{}" | jq '.networks.local.bind="127.0.0.1:0"' > dfx.json + + assert_command dfx start --background --verbose + + assert_match "Local server configuration:" + assert_match "bind address: 127.0.0.1:0 \(default: 127.0.0.1:8000\)" + assert_match "bitcoin: disabled" + assert_match "canister http: enabled" + assert_match "subnet type: Application" + assert_match "data directory: .*/working-dir/.dfx/network/local" + assert_match "scope: project" } @test "dfx start describes default shared network" { - # almost default: use a dynamic port - create_networks_json - echo "{}" | jq '.local.bind="127.0.0.1:0"' >"$E2E_NETWORKS_JSON" + # almost default: use a dynamic port + create_networks_json + echo "{}" | jq '.local.bind="127.0.0.1:0"' >"$E2E_NETWORKS_JSON" - assert_command dfx start --background --verbose + assert_command dfx start --background --verbose - assert_match "Local server configuration:" - assert_match "bind address: 127.0.0.1:0 \(default: 127.0.0.1:4943\)" - assert_match "bitcoin: disabled" - assert_match "canister http: enabled" - assert_match "subnet type: Application" + assert_match "Local server configuration:" + assert_match "bind address: 127.0.0.1:0 \(default: 127.0.0.1:4943\)" + assert_match "bitcoin: disabled" + assert_match "canister http: enabled" + assert_match "subnet type: Application" - if [ "$(uname)" == "Darwin" ]; then - assert_match "data directory: .*/home-dir/Library/Application Support/org.dfinity.dfx/network/local" - elif [ "$(uname)" == "Linux" ]; then - assert_match "data directory: .*/home-dir/.local/share/dfx/network/local" - fi + if [ "$(uname)" == "Darwin" ]; then + assert_match "data directory: .*/home-dir/Library/Application Support/org.dfinity.dfx/network/local" + elif [ "$(uname)" == "Linux" ]; then + assert_match "data directory: .*/home-dir/.local/share/dfx/network/local" + fi - assert_match "scope: shared" + assert_match "scope: shared" } \ No newline at end of file diff --git a/e2e/tests-dfx/dfx_install.bash b/e2e/tests-dfx/dfx_install.bash index 17b1fbab19..60c8f8b1a2 100644 --- a/e2e/tests-dfx/dfx_install.bash +++ b/e2e/tests-dfx/dfx_install.bash @@ -3,78 +3,78 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx cache show does not install the dfx version into the cache" { - use_test_specific_cache_root - test -z "$(ls -A "$DFX_CACHE_ROOT")" + use_test_specific_cache_root + test -z "$(ls -A "$DFX_CACHE_ROOT")" - assert_command dfx cache show + assert_command dfx cache show - # does not populate the cache with this version - test ! -e "$(dfx cache show)" + # does not populate the cache with this version + test ! -e "$(dfx cache show)" - # it does create the empty versions directory though - test -d "$DFX_CACHE_ROOT/.cache/dfinity/versions" - test -z "$(ls -A "$DFX_CACHE_ROOT/.cache/dfinity/versions"``)" + # it does create the empty versions directory though + test -d "$DFX_CACHE_ROOT/.cache/dfinity/versions" + test -z "$(ls -A "$DFX_CACHE_ROOT/.cache/dfinity/versions"``)" } @test "non-forced install populates an empty cache" { - use_test_specific_cache_root - test ! -e "$(dfx cache show)"/dfx + use_test_specific_cache_root + test ! -e "$(dfx cache show)"/dfx - dfx_new + dfx_new - test -f "$(dfx cache show)"/dfx + test -f "$(dfx cache show)"/dfx } @test "forced install populates an empty cache" { - use_test_specific_cache_root + use_test_specific_cache_root - test ! -e "$(dfx cache show)"/dfx + test ! -e "$(dfx cache show)"/dfx - assert_command dfx cache install + assert_command dfx cache install - test -f "$(dfx cache show)"/dfx + test -f "$(dfx cache show)"/dfx } @test "forced install over an install succeeds" { - assert_command dfx cache install - test -f "$(dfx cache show)"/dfx + assert_command dfx cache install + test -f "$(dfx cache show)"/dfx - assert_command dfx cache install + assert_command dfx cache install } @test "Motoko base library files are not executable" { - assert_command dfx cache install - for file in "$(dfx cache show)"/base/*.mo; do - assert_command_fail test -x "$file" - assert_command_fail "$file" - assert_contains "Permission denied" - done + assert_command dfx cache install + for file in "$(dfx cache show)"/base/*.mo; do + assert_command_fail test -x "$file" + assert_command_fail "$file" + assert_contains "Permission denied" + done } @test "forced install overwrites a cached version" { - assert_command dfx cache install - test -f "$(dfx cache show)"/dfx + assert_command dfx cache install + test -f "$(dfx cache show)"/dfx - # add something extra to the cache - echo "garbage" >"$(dfx cache show)"/garbage - test -f "$(dfx cache show)"/garbage + # add something extra to the cache + echo "garbage" >"$(dfx cache show)"/garbage + test -f "$(dfx cache show)"/garbage - assert_command dfx cache install + assert_command dfx cache install - # dfx cache install should have removed it - test ! -e "$(dfx cache show)"/garbage + # dfx cache install should have removed it + test ! -e "$(dfx cache show)"/garbage - # and also installed the cache itself - test -f "$(dfx cache show)"/dfx + # and also installed the cache itself + test -f "$(dfx cache show)"/dfx } diff --git a/e2e/tests-dfx/dotenv.bash b/e2e/tests-dfx/dotenv.bash index 542895bb04..1f6f2ab755 100644 --- a/e2e/tests-dfx/dotenv.bash +++ b/e2e/tests-dfx/dotenv.bash @@ -3,84 +3,84 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop - - standard_teardown + dfx_stop + + standard_teardown } @test "writes environment variables to .env" { - dfx_start - dfx canister create --all - # .env should also include canisters that are not explicit dependencies - jq 'del(.canisters.e2e_project_frontend.dependencies)' dfx.json | sponge dfx.json - backend_canister=$(dfx canister id e2e_project_backend) - frontend_canister=$(dfx canister id e2e_project_frontend) - - assert_command dfx build e2e_project_frontend - - assert_file_exists .env - env=$(< .env) - assert_contains "DFX_NETWORK='local'" "$env" - assert_contains "CANISTER_ID_E2E_PROJECT_BACKEND='$backend_canister'" "$env" - assert_contains "E2E_PROJECT_BACKEND_CANISTER_ID='$backend_canister'" "$env" - assert_contains "CANISTER_ID_E2E_PROJECT_FRONTEND='$frontend_canister'" "$env" - assert_contains "E2E_PROJECT_FRONTEND_CANISTER_ID='$frontend_canister'" "$env" - - setup_actuallylocal_project_network - dfx canister create --all --network actuallylocal - assert_command dfx build --network actuallylocal - assert_contains "DFX_NETWORK='actuallylocal'" "$(< .env)" + dfx_start + dfx canister create --all + # .env should also include canisters that are not explicit dependencies + jq 'del(.canisters.e2e_project_frontend.dependencies)' dfx.json | sponge dfx.json + backend_canister=$(dfx canister id e2e_project_backend) + frontend_canister=$(dfx canister id e2e_project_frontend) + + assert_command dfx build e2e_project_frontend + + assert_file_exists .env + env=$(< .env) + assert_contains "DFX_NETWORK='local'" "$env" + assert_contains "CANISTER_ID_E2E_PROJECT_BACKEND='$backend_canister'" "$env" + assert_contains "E2E_PROJECT_BACKEND_CANISTER_ID='$backend_canister'" "$env" + assert_contains "CANISTER_ID_E2E_PROJECT_FRONTEND='$frontend_canister'" "$env" + assert_contains "E2E_PROJECT_FRONTEND_CANISTER_ID='$frontend_canister'" "$env" + + setup_actuallylocal_project_network + dfx canister create --all --network actuallylocal + assert_command dfx build --network actuallylocal + assert_contains "DFX_NETWORK='actuallylocal'" "$(< .env)" } @test "writes environment variables to selected file" { - dfx_start - dfx canister create --all + dfx_start + dfx canister create --all - assert_command dfx build --output-env-file flag.env - assert_file_exists flag.env - assert_contains "DFX_NETWORK='local'" "$(< flag.env)" + assert_command dfx build --output-env-file flag.env + assert_file_exists flag.env + assert_contains "DFX_NETWORK='local'" "$(< flag.env)" - jq '.output_env_file="json.env"' dfx.json | sponge dfx.json - assert_command dfx build - assert_file_exists json.env - assert_contains "DFX_NETWORK='local'" "$(< json.env)" + jq '.output_env_file="json.env"' dfx.json | sponge dfx.json + assert_command dfx build + assert_file_exists json.env + assert_contains "DFX_NETWORK='local'" "$(< json.env)" - jq 'del(.output_env_file)' dfx.json | sponge dfx.json - assert_command dfx build - assert_file_not_exists .env + jq 'del(.output_env_file)' dfx.json | sponge dfx.json + assert_command dfx build + assert_file_not_exists .env } @test "does not clobber existing .env content" { - dfx_start - dfx canister create --all - echo 'foo=bar' > .env - - assert_command dfx build - assert_file_exists .env - env=$(< .env) - assert_contains "DFX_NETWORK='local'" "$env" - assert_contains "foo=bar" "$env" - - echo 'baz=quux' >> .env - assert_command dfx build - env=$(< .env) - assert_contains "DFX_NETWORK='local'" "$env" - assert_contains "foo=bar" "$env" - assert_contains "baz=quux" "$env" - - # deliberately corrupt the file - head -n 3 .env | sponge .env - echo 'baz=quux' >> .env - assert_command dfx build - env=$(< .env) - assert_contains "# END DFX CANISTER ENVIRONMENT VARIABLES" "$env" - assert_contains "DFX_NETWORK='local'" "$env" - assert_contains "foo=bar" "$env" - assert_contains "baz=quux" "$env" + dfx_start + dfx canister create --all + echo 'foo=bar' > .env + + assert_command dfx build + assert_file_exists .env + env=$(< .env) + assert_contains "DFX_NETWORK='local'" "$env" + assert_contains "foo=bar" "$env" + + echo 'baz=quux' >> .env + assert_command dfx build + env=$(< .env) + assert_contains "DFX_NETWORK='local'" "$env" + assert_contains "foo=bar" "$env" + assert_contains "baz=quux" "$env" + + # deliberately corrupt the file + head -n 3 .env | sponge .env + echo 'baz=quux' >> .env + assert_command dfx build + env=$(< .env) + assert_contains "# END DFX CANISTER ENVIRONMENT VARIABLES" "$env" + assert_contains "DFX_NETWORK='local'" "$env" + assert_contains "foo=bar" "$env" + assert_contains "baz=quux" "$env" } diff --git a/e2e/tests-dfx/ed25519.bash b/e2e/tests-dfx/ed25519.bash index e8de4d8d6c..1e81d06663 100644 --- a/e2e/tests-dfx/ed25519.bash +++ b/e2e/tests-dfx/ed25519.bash @@ -3,27 +3,27 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "can call a canister using an ed25519 identity" { - install_asset ed25519 - assert_command dfx identity import --storage-mode plaintext ed25519 identity.pem - dfx_new # This installs replica and other binaries - dfx identity use ed25519 - install_asset whoami - dfx_start - dfx canister create whoami - dfx build - dfx canister install whoami - assert_command dfx canister call whoami whoami - assert_eq '(principal "2nor3-keehi-duuup-d7jcn-onggn-3atzm-gejtl-5tlzn-k4g6c-nnbf7-7qe")' - assert_command dfx identity get-principal - assert_eq "2nor3-keehi-duuup-d7jcn-onggn-3atzm-gejtl-5tlzn-k4g6c-nnbf7-7qe" + install_asset ed25519 + assert_command dfx identity import --storage-mode plaintext ed25519 identity.pem + dfx_new # This installs replica and other binaries + dfx identity use ed25519 + install_asset whoami + dfx_start + dfx canister create whoami + dfx build + dfx canister install whoami + assert_command dfx canister call whoami whoami + assert_eq '(principal "2nor3-keehi-duuup-d7jcn-onggn-3atzm-gejtl-5tlzn-k4g6c-nnbf7-7qe")' + assert_command dfx identity get-principal + assert_eq "2nor3-keehi-duuup-d7jcn-onggn-3atzm-gejtl-5tlzn-k4g6c-nnbf7-7qe" } diff --git a/e2e/tests-dfx/error_context.bash b/e2e/tests-dfx/error_context.bash index 61ad808525..694e1a8fa4 100644 --- a/e2e/tests-dfx/error_context.bash +++ b/e2e/tests-dfx/error_context.bash @@ -3,181 +3,181 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new - install_asset error_context + dfx_new + install_asset error_context } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "problems reading wallets.json" { - dfx_start + dfx_start - assert_command dfx identity get-wallet + assert_command dfx identity get-wallet - echo "invalid json" >"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + echo "invalid json" >"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" - assert_command_fail dfx identity get-wallet - assert_match "Failed to parse contents of .*/network/local/wallets.json as json" - assert_match "expected value at line 1 column 1" + assert_command_fail dfx identity get-wallet + assert_match "Failed to parse contents of .*/network/local/wallets.json as json" + assert_match "expected value at line 1 column 1" - assert_command_fail dfx wallet upgrade - assert_match "Failed to parse contents of .*/network/local/wallets.json as json" - assert_match "expected value at line 1 column 1" + assert_command_fail dfx wallet upgrade + assert_match "Failed to parse contents of .*/network/local/wallets.json as json" + assert_match "expected value at line 1 column 1" - echo '{ "identities": {} }' >"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + echo '{ "identities": {} }' >"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" - # maybe you were sudo when you made it - chmod u=w,go= "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" - assert_command_fail dfx identity get-wallet - assert_match "Failed to read .*/network/local/wallets.json" - assert_match "Permission denied" + # maybe you were sudo when you made it + chmod u=w,go= "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + assert_command_fail dfx identity get-wallet + assert_match "Failed to read .*/network/local/wallets.json" + assert_match "Permission denied" - assert_command_fail dfx wallet upgrade - assert_match "Failed to read .*/network/local/wallets.json" - assert_match "Permission denied" + assert_command_fail dfx wallet upgrade + assert_match "Failed to read .*/network/local/wallets.json" + assert_match "Permission denied" - # can't write it? - chmod u=r,go= "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" - assert_command dfx identity new --storage-mode plaintext alice - assert_command_fail dfx identity get-wallet --identity alice - assert_match "Failed to write to .*/local/wallets.json" - assert_match "Permission denied" + # can't write it? + chmod u=r,go= "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + assert_command dfx identity new --storage-mode plaintext alice + assert_command_fail dfx identity get-wallet --identity alice + assert_match "Failed to write to .*/local/wallets.json" + assert_match "Permission denied" } @test "address already in use" { - dfx_start + dfx_start - port=$(get_webserver_port) - address="127.0.0.1:$port" + port=$(get_webserver_port) + address="127.0.0.1:$port" - # fool dfx start into thinking dfx isn't running - mv "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/pid" "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/hidden_pid" + # fool dfx start into thinking dfx isn't running + mv "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/pid" "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/hidden_pid" - assert_command_fail dfx start --host "$address" + assert_command_fail dfx start --host "$address" - # What was the purpose of the address - assert_match "frontend address" + # What was the purpose of the address + assert_match "frontend address" - # What was the address we were looking for - assert_match "$address" + # What was the address we were looking for + assert_match "$address" - # The underlying cause - assert_match "Address already in use" + # The underlying cause + assert_match "Address already in use" - # Allow dfx stop to stop dfx in teardown. Otherwise, bats will never exit - mv "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/hidden_pid" "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/pid" + # Allow dfx stop to stop dfx in teardown. Otherwise, bats will never exit + mv "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/hidden_pid" "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/pid" } @test "corrupt dfx.json" { - echo "corrupt" >dfx.json - assert_command_fail dfx deploy + echo "corrupt" >dfx.json + assert_command_fail dfx deploy - # The bare minimum is to mention the file - assert_match "dfx.json" + # The bare minimum is to mention the file + assert_match "dfx.json" - # It's nice to mention the full path to the file - assert_match "$(pwd)/dfx.json" + # It's nice to mention the full path to the file + assert_match "$(pwd)/dfx.json" - # The underlying cause - assert_match "expected value at line 1 column 1" + # The underlying cause + assert_match "expected value at line 1 column 1" } @test "packtool missing" { - dfx_start + dfx_start - assert_command dfx canister create packtool_missing + assert_command dfx canister create packtool_missing - jq '.defaults.build.packtool="not-a-valid-packtool and some parameters"' dfx.json | sponge dfx.json + jq '.defaults.build.packtool="not-a-valid-packtool and some parameters"' dfx.json | sponge dfx.json - assert_command_fail dfx build packtool_missing + assert_command_fail dfx build packtool_missing - # expect to see the name of the packtool and the parameters - assert_match '"not-a-valid-packtool" "and" "some" "parameters"' - # expect to see the underlying cause - assert_match "No such file or directory" + # expect to see the name of the packtool and the parameters + assert_match '"not-a-valid-packtool" "and" "some" "parameters"' + # expect to see the underlying cause + assert_match "No such file or directory" } @test "moc missing" { - use_test_specific_cache_root # Because this test modifies a file in the cache + use_test_specific_cache_root # Because this test modifies a file in the cache - dfx_start + dfx_start - assert_command dfx canister create m_o_c_missing + assert_command dfx canister create m_o_c_missing - rm -f "$(dfx cache show)/moc" - assert_command_fail dfx build m_o_c_missing + rm -f "$(dfx cache show)/moc" + assert_command_fail dfx build m_o_c_missing - # expect to see the name of the binary - assert_match "moc" + # expect to see the name of the binary + assert_match "moc" - # expect to see the full path of the binary - assert_contains "$(dfx cache show)/moc" + # expect to see the full path of the binary + assert_contains "$(dfx cache show)/moc" - # expect to see the underlying cause - assert_match "No such file or directory" + # expect to see the underlying cause + assert_match "No such file or directory" } @test "npm is not installed" { - dfx_start + dfx_start - assert_command dfx canister create npm_missing + assert_command dfx canister create npm_missing - # this is how dfx decides to run `npm run build' - touch package.json + # this is how dfx decides to run `npm run build' + touch package.json - dfx_path="$(which dfx)" - # commands needed by assert_command_fail: - helpers_path="$(which mktemp rm echo | xargs -n 1 dirname | sort | uniq | tr '\n' ':')" - PATH="$helpers_path" assert_command_fail "$dfx_path" deploy npm_missing + dfx_path="$(which dfx)" + # commands needed by assert_command_fail: + helpers_path="$(which mktemp rm echo | xargs -n 1 dirname | sort | uniq | tr '\n' ':')" + PATH="$helpers_path" assert_command_fail "$dfx_path" deploy npm_missing - # expect to see the npm command line - assert_contains 'program: "npm"' - assert_match 'args: \[.*"npm".*"run".*"build".*\]' - # expect to see the name of the canister - assert_match "npm_missing" - # expect to see the underlying cause - assert_match "No such file or directory" + # expect to see the npm command line + assert_contains 'program: "npm"' + assert_match 'args: \[.*"npm".*"run".*"build".*\]' + # expect to see the name of the canister + assert_match "npm_missing" + # expect to see the underlying cause + assert_match "No such file or directory" } @test "missing asset source directory" { - dfx_start + dfx_start - assert_command dfx canister create asset_bad_source_path + assert_command dfx canister create asset_bad_source_path - assert_command_fail dfx deploy asset_bad_source_path + assert_command_fail dfx deploy asset_bad_source_path - # expect to see the bad path - assert_match "src/does/not/exist" - # expect to see the name of the canister - assert_match "asset_bad_source_path" - # expect to see the underlying cause - assert_match "No such file or directory" + # expect to see the bad path + assert_match "src/does/not/exist" + # expect to see the name of the canister + assert_match "asset_bad_source_path" + # expect to see the underlying cause + assert_match "No such file or directory" } @test "custom bad build step" { - dfx_start + dfx_start - assert_command dfx canister create custom_bad_build_step + assert_command dfx canister create custom_bad_build_step - assert_command_fail dfx build custom_bad_build_step + assert_command_fail dfx build custom_bad_build_step - # expect to see what it tried to call - assert_match "not-the-name-of-an-executable-that-exists" - # expect to see the name of the canister - assert_match "custom_bad_build_step" - # expect to see the underlying cause - assert_match "Cannot find command or file" + # expect to see what it tried to call + assert_match "not-the-name-of-an-executable-that-exists" + # expect to see the name of the canister + assert_match "custom_bad_build_step" + # expect to see the underlying cause + assert_match "Cannot find command or file" } @test "invalid optimization level" { - jq '.canisters.bad_optimization_level.optimize="bad_level"' dfx.json | sponge dfx.json - assert_command_fail dfx_start - assert_match "expected one of " + jq '.canisters.bad_optimization_level.optimize="bad_level"' dfx.json | sponge dfx.json + assert_command_fail dfx_start + assert_match "expected one of " } \ No newline at end of file diff --git a/e2e/tests-dfx/error_diagnosis.bash b/e2e/tests-dfx/error_diagnosis.bash index fa774ac1cf..5713607c9a 100644 --- a/e2e/tests-dfx/error_diagnosis.bash +++ b/e2e/tests-dfx/error_diagnosis.bash @@ -3,56 +3,56 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "Duplicate assets in dist/ from src/" { - dfx_new_frontend hello - install_asset greet - dfx_start - assert_command dfx deploy + dfx_new_frontend hello + install_asset greet + dfx_start + assert_command dfx deploy - # simulate previous deploy with CopyPlugin step - cp src/hello_frontend/assets/* dist/hello_frontend/ + # simulate previous deploy with CopyPlugin step + cp src/hello_frontend/assets/* dist/hello_frontend/ - assert_command_fail dfx deploy - assert_contains "Remove the CopyPlugin step from webpack.config.js" - assert_contains "Delete all files from the dist/ directory" + assert_command_fail dfx deploy + assert_contains "Remove the CopyPlugin step from webpack.config.js" + assert_contains "Delete all files from the dist/ directory" } @test "HTTP 403 has a full diagnosis" { - dfx_new hello - install_asset greet - dfx_start - assert_command dfx deploy - - # make sure normal status command works - assert_command dfx canister status hello_backend - - # create a non-controller ID - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity use alice - - # calling canister status with different identity provokes HTTP 403 - assert_command_fail dfx canister status hello_backend - assert_match "not part of the controllers" # this is part of the error explanation - assert_match "'dfx canister update-settings --add-controller \(--network ic\)'" # this is part of the solution + dfx_new hello + install_asset greet + dfx_start + assert_command dfx deploy + + # make sure normal status command works + assert_command dfx canister status hello_backend + + # create a non-controller ID + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity use alice + + # calling canister status with different identity provokes HTTP 403 + assert_command_fail dfx canister status hello_backend + assert_match "not part of the controllers" # this is part of the error explanation + assert_match "'dfx canister update-settings --add-controller \(--network ic\)'" # this is part of the solution } @test "Instruct user to set a wallet" { - dfx_new hello - install_asset greet - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity use alice - - # this will fail because no wallet is configured for alice on network ic - assert_command_fail dfx deploy --network ic - assert_match "requires a configured wallet" # this is part of the error explanation - assert_match "'dfx identity set-wallet --network '" # this is part of the solution + dfx_new hello + install_asset greet + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity use alice + + # this will fail because no wallet is configured for alice on network ic + assert_command_fail dfx deploy --network ic + assert_match "requires a configured wallet" # this is part of the error explanation + assert_match "'dfx identity set-wallet --network '" # this is part of the solution } diff --git a/e2e/tests-dfx/extension.bash b/e2e/tests-dfx/extension.bash index 0d81e3e91b..dd22e5b5b0 100644 --- a/e2e/tests-dfx/extension.bash +++ b/e2e/tests-dfx/extension.bash @@ -3,86 +3,86 @@ load ../utils/_ setup() { - standard_setup - use_test_specific_cache_root + standard_setup + use_test_specific_cache_root } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "install extension from official registry" { - assert_command_fail dfx snsx + assert_command_fail dfx snsx - assert_command dfx extension list - assert_match 'No extensions installed' + assert_command dfx extension list + assert_match 'No extensions installed' - assert_command dfx extension install sns --install-as snsx - # TODO: how to capture spinner message? - # assert_match 'Successfully installed extension' + assert_command dfx extension install sns --install-as snsx + # TODO: how to capture spinner message? + # assert_match 'Successfully installed extension' - assert_command dfx extension list - assert_match 'snsx' + assert_command dfx extension list + assert_match 'snsx' - assert_command dfx --help - assert_match 'snsx.*Toolkit for' + assert_command dfx --help + assert_match 'snsx.*Toolkit for' - assert_command dfx snsx --help + assert_command dfx snsx --help - assert_command dfx extension uninstall snsx - # TODO: how to capture spinner message? - # assert_match 'Successfully uninstalled extension' + assert_command dfx extension uninstall snsx + # TODO: how to capture spinner message? + # assert_match 'Successfully uninstalled extension' - assert_command dfx extension list - assert_match 'No extensions installed' + assert_command dfx extension list + assert_match 'No extensions installed' } @test "manually create extension" { - assert_command dfx extension list - assert_match 'No extensions installed' + assert_command dfx extension list + assert_match 'No extensions installed' - CACHE_DIR=$(dfx cache show) - mkdir -p "$CACHE_DIR"/extensions/test_extension - echo '#!/usr/bin/env bash + CACHE_DIR=$(dfx cache show) + mkdir -p "$CACHE_DIR"/extensions/test_extension + echo '#!/usr/bin/env bash echo testoutput' > "$CACHE_DIR"/extensions/test_extension/test_extension - chmod +x "$CACHE_DIR"/extensions/test_extension/test_extension + chmod +x "$CACHE_DIR"/extensions/test_extension/test_extension - assert_command_fail dfx extension list - assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" + assert_command_fail dfx extension list + assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" - assert_command_fail dfx extension run test_extension - assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" + assert_command_fail dfx extension run test_extension + assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" - assert_command_fail dfx test_extension - assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" + assert_command_fail dfx test_extension + assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" - assert_command_fail dfx --help - assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" + assert_command_fail dfx --help + assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" - assert_command_fail dfx test_extension --help - assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" + assert_command_fail dfx test_extension --help + assert_match "Error.*Cannot load extension manifest.*Failed to read JSON file.*Failed to read .*extensions/test_extension/extension.json.*No such file or directory" - echo "{}" > "$CACHE_DIR"/extensions/test_extension/extension.json + echo "{}" > "$CACHE_DIR"/extensions/test_extension/extension.json - assert_command_fail dfx extension list - assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" + assert_command_fail dfx extension list + assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" - assert_command_fail dfx extension run test_extension - assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" + assert_command_fail dfx extension run test_extension + assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" - assert_command_fail dfx test_extension - assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" + assert_command_fail dfx test_extension + assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" - assert_command_fail dfx --help - assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" + assert_command_fail dfx --help + assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" - assert_command_fail dfx test_extension --help - assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" + assert_command_fail dfx test_extension --help + assert_match "Error.*Cannot load extension manifest.*Failed to parse contents of .*extensions/test_extension/extension.json as json.* missing field .* at line .* column .*" - echo '{ + echo '{ "name": "test_extension", "version": "0.1.0", "homepage": "https://github.com/dfinity/dfx-extensions", @@ -92,45 +92,45 @@ echo testoutput' > "$CACHE_DIR"/extensions/test_extension/test_extension "keywords": [] }' > "$CACHE_DIR"/extensions/test_extension/extension.json - assert_command dfx --help - assert_match "test_extension.*Test extension for e2e purposes." + assert_command dfx --help + assert_match "test_extension.*Test extension for e2e purposes." - assert_command dfx test_extension --help - assert_match "Test extension for e2e purposes..*Usage: dfx test_extension" + assert_command dfx test_extension --help + assert_match "Test extension for e2e purposes..*Usage: dfx test_extension" - assert_command dfx extension list - assert_match "test_extension" + assert_command dfx extension list + assert_match "test_extension" - assert_command dfx extension run test_extension - assert_match "testoutput" + assert_command dfx extension run test_extension + assert_match "testoutput" - assert_command dfx test_extension - assert_match "testoutput" + assert_command dfx test_extension + assert_match "testoutput" - assert_command dfx extension uninstall test_extension - # TODO: how to capture spinner message? - # assert_match 'Successfully uninstalled extension' + assert_command dfx extension uninstall test_extension + # TODO: how to capture spinner message? + # assert_match 'Successfully uninstalled extension' - assert_command dfx extension list - assert_match 'No extensions installed' + assert_command dfx extension list + assert_match 'No extensions installed' } @test "run with hyphened parameters" { - CACHE_DIR=$(dfx cache show) - mkdir -p "$CACHE_DIR"/extensions/test_extension + CACHE_DIR=$(dfx cache show) + mkdir -p "$CACHE_DIR"/extensions/test_extension - cat > "$CACHE_DIR"/extensions/test_extension/test_extension << "EOF" + cat > "$CACHE_DIR"/extensions/test_extension/test_extension << "EOF" #!/usr/bin/env bash if [ "$2" == "--the-param" ]; then - echo "pamparam the param is $3" + echo "pamparam the param is $3" fi EOF - chmod +x "$CACHE_DIR"/extensions/test_extension/test_extension + chmod +x "$CACHE_DIR"/extensions/test_extension/test_extension - cat > "$CACHE_DIR"/extensions/test_extension/extension.json < "$CACHE_DIR"/extensions/test_extension/extension.json < "$CACHE_DIR"/extensions/test_extension/test_extension << "EOF" + cat > "$CACHE_DIR"/extensions/test_extension/test_extension << "EOF" #!/usr/bin/env bash echo $@ EOF - chmod +x "$CACHE_DIR"/extensions/test_extension/test_extension + chmod +x "$CACHE_DIR"/extensions/test_extension/test_extension - cat > "$CACHE_DIR"/extensions/test_extension/extension.json < "$CACHE_DIR"/extensions/test_extension/extension.json <"$E2E_NETWORKS_JSON" - - assert_command dfx deploy - assert_match "e2e_project_backend: http://$CANDID_UI_ID.localhost:$PORT/\?id=$APP_ID" - assert_match "e2e_project_frontend: http://$ASSETS_ID.localhost:$PORT/" + dfx_start + PORT=$(get_webserver_port) + + assert_command dfx deploy + CANDID_UI_ID=$(dfx canister id __Candid_UI) + APP_ID=$(dfx canister id e2e_project_backend) + ASSETS_ID=$(dfx canister id e2e_project_frontend) + assert_match "e2e_project_backend: http://127.0.0.1:$PORT/\?canisterId=$CANDID_UI_ID&id=$APP_ID" + assert_match "e2e_project_frontend: http://127.0.0.1:$PORT/\?canisterId=$ASSETS_ID" + + # the urls are a little nicer if the bind address is localhost:8000 rather than 127.0.0.1:8000 + jq -n '.local.bind="localhost:'"$PORT"'"' >"$E2E_NETWORKS_JSON" + + assert_command dfx deploy + assert_match "e2e_project_backend: http://$CANDID_UI_ID.localhost:$PORT/\?id=$APP_ID" + assert_match "e2e_project_frontend: http://$ASSETS_ID.localhost:$PORT/" } @test "dfx start serves a frontend with static assets" { - skip "Need a build of @dfinity/agent that works with HTTP Query" - dfx_start - dfx canister create --all - dfx build - dfx canister install --all - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - assert_command curl http://localhost:"$PORT"/?canisterId="$ID" - assert_match "logo.png" + skip "Need a build of @dfinity/agent that works with HTTP Query" + dfx_start + dfx canister create --all + dfx build + dfx canister install --all + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + assert_command curl http://localhost:"$PORT"/?canisterId="$ID" + assert_match "logo.png" } @test "dfx start serves a frontend on a port" { - skip "Need a build of @dfinity/agent that works with HTTP Query" + skip "Need a build of @dfinity/agent that works with HTTP Query" - dfx_start --host 127.0.0.1:12345 + dfx_start --host 127.0.0.1:12345 - jq '.networks.local.bind="127.0.0.1:12345"' dfx.json | sponge dfx.json + jq '.networks.local.bind="127.0.0.1:12345"' dfx.json | sponge dfx.json - dfx canister create --all - dfx build - dfx canister install --all + dfx canister create --all + dfx build + dfx canister install --all - ID=$(dfx canister id e2e_project_frontend) - assert_command curl http://localhost:12345/?canisterId="$ID" - assert_match "" + ID=$(dfx canister id e2e_project_frontend) + assert_command curl http://localhost:12345/?canisterId="$ID" + assert_match "" - assert_command_fail curl http://localhost:8000 - assert_match "Connection refused" + assert_command_fail curl http://localhost:8000 + assert_match "Connection refused" } @test "dfx uses .ic-assets.json file provided in src/__project_name__frontend/src" { - echo '[{"match": "*", "headers": {"x-key": "x-value"}}]' > src/e2e_project_frontend/src/.ic-assets.json - - dfx_start - dfx canister create --all - dfx build - dfx canister install --all - - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) - assert_command curl -vv http://localhost:"$PORT"/?canisterId="$ID" - assert_match "< x-key: x-value" - assert_command curl -vv http://localhost:"$PORT"/index.js?canisterId="$ID" - assert_match "< x-key: x-value" + echo '[{"match": "*", "headers": {"x-key": "x-value"}}]' > src/e2e_project_frontend/src/.ic-assets.json + + dfx_start + dfx canister create --all + dfx build + dfx canister install --all + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + assert_command curl -vv http://localhost:"$PORT"/?canisterId="$ID" + assert_match "< x-key: x-value" + assert_command curl -vv http://localhost:"$PORT"/index.js?canisterId="$ID" + assert_match "< x-key: x-value" } @test "dfx uses a custom build command if one is provided" { - jq '.canisters.e2e_project_frontend.source = ["dist/e2e_project_frontend/"]' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_frontend.build = ["npm run custom-build"]' dfx.json | sponge dfx.json - jq '.scripts["custom-build"] = "mkdir -p ./dist/e2e_project_frontend/assets/ && cp -r ./src/e2e_project_frontend/assets/* ./dist/e2e_project_frontend"' package.json | sponge package.json + jq '.canisters.e2e_project_frontend.source = ["dist/e2e_project_frontend/"]' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_frontend.build = ["npm run custom-build"]' dfx.json | sponge dfx.json + jq '.scripts["custom-build"] = "mkdir -p ./dist/e2e_project_frontend/assets/ && cp -r ./src/e2e_project_frontend/assets/* ./dist/e2e_project_frontend"' package.json | sponge package.json - dfx_start - dfx canister create --all - dfx build - dfx canister install --all + dfx_start + dfx canister create --all + dfx build + dfx canister install --all - ID=$(dfx canister id e2e_project_frontend) - PORT=$(get_webserver_port) + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) - assert_command curl -vv http://localhost:"$PORT"/sample-asset.txt?canisterId="$ID" - assert_match "This is a sample asset!" + assert_command curl -vv http://localhost:"$PORT"/sample-asset.txt?canisterId="$ID" + assert_match "This is a sample asset!" } diff --git a/e2e/tests-dfx/generate.bash b/e2e/tests-dfx/generate.bash index 604fea0c0b..80e571c20d 100755 --- a/e2e/tests-dfx/generate.bash +++ b/e2e/tests-dfx/generate.bash @@ -3,148 +3,148 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx generate creates files" { - dfx_new hello - dfx_start - dfx canister create --all - dfx build - dfx canister install --all - - dfx generate - - assert_file_exists "src/declarations/hello_backend/hello_backend.did" - assert_file_exists "src/declarations/hello_backend/hello_backend.did.js" - assert_file_exists "src/declarations/hello_backend/hello_backend.did.d.ts" - assert_file_exists "src/declarations/hello_backend/index.js" - assert_file_exists "src/declarations/hello_backend/index.d.ts" + dfx_new hello + dfx_start + dfx canister create --all + dfx build + dfx canister install --all + + dfx generate + + assert_file_exists "src/declarations/hello_backend/hello_backend.did" + assert_file_exists "src/declarations/hello_backend/hello_backend.did.js" + assert_file_exists "src/declarations/hello_backend/hello_backend.did.d.ts" + assert_file_exists "src/declarations/hello_backend/index.js" + assert_file_exists "src/declarations/hello_backend/index.d.ts" } @test "dfx generate creates only JS files" { - dfx_new hello - jq '.canisters.hello_backend.declarations.bindings=["js"]' dfx.json | sponge dfx.json + dfx_new hello + jq '.canisters.hello_backend.declarations.bindings=["js"]' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - dfx build - dfx canister install --all + dfx_start + dfx canister create --all + dfx build + dfx canister install --all - dfx generate + dfx generate - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" - assert_file_exists "src/declarations/hello_backend/hello_backend.did.js" - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.d.ts" - assert_file_exists "src/declarations/hello_backend/index.js" - assert_file_not_exists "src/declarations/hello_backend/index.d.ts" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" + assert_file_exists "src/declarations/hello_backend/hello_backend.did.js" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.d.ts" + assert_file_exists "src/declarations/hello_backend/index.js" + assert_file_not_exists "src/declarations/hello_backend/index.d.ts" } @test "dfx generate creates only TS files" { - dfx_new hello - jq '.canisters.hello_backend.declarations.bindings=["ts"]' dfx.json | sponge dfx.json + dfx_new hello + jq '.canisters.hello_backend.declarations.bindings=["ts"]' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - dfx build - dfx canister install --all + dfx_start + dfx canister create --all + dfx build + dfx canister install --all - dfx generate + dfx generate - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.js" - assert_file_exists "src/declarations/hello_backend/hello_backend.did.d.ts" - assert_file_not_exists "src/declarations/hello_backend/index.js" - assert_file_exists "src/declarations/hello_backend/index.d.ts" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.js" + assert_file_exists "src/declarations/hello_backend/hello_backend.did.d.ts" + assert_file_not_exists "src/declarations/hello_backend/index.js" + assert_file_exists "src/declarations/hello_backend/index.d.ts" } @test "dfx generate creates only JS & TS files" { - dfx_new hello - jq '.canisters.hello_backend.declarations.bindings=["js", "ts"]' dfx.json | sponge dfx.json + dfx_new hello + jq '.canisters.hello_backend.declarations.bindings=["js", "ts"]' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - dfx build - dfx canister install --all + dfx_start + dfx canister create --all + dfx build + dfx canister install --all - dfx generate + dfx generate - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" - assert_file_exists "src/declarations/hello_backend/hello_backend.did.js" - assert_file_exists "src/declarations/hello_backend/hello_backend.did.d.ts" - assert_file_exists "src/declarations/hello_backend/index.js" - assert_file_exists "src/declarations/hello_backend/index.d.ts" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" + assert_file_exists "src/declarations/hello_backend/hello_backend.did.js" + assert_file_exists "src/declarations/hello_backend/hello_backend.did.d.ts" + assert_file_exists "src/declarations/hello_backend/index.js" + assert_file_exists "src/declarations/hello_backend/index.d.ts" } @test "dfx generate creates only DID files" { - dfx_new hello - jq '.canisters.hello_backend.declarations.bindings=["did"]' dfx.json | sponge dfx.json + dfx_new hello + jq '.canisters.hello_backend.declarations.bindings=["did"]' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - dfx build - dfx canister install --all + dfx_start + dfx canister create --all + dfx build + dfx canister install --all - dfx generate + dfx generate - assert_file_exists "src/declarations/hello_backend/hello_backend.did" - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.js" - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.d.ts" - assert_file_not_exists "src/declarations/hello_backend/index.js" - assert_file_not_exists "src/declarations/hello_backend/index.d.ts" + assert_file_exists "src/declarations/hello_backend/hello_backend.did" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.js" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.d.ts" + assert_file_not_exists "src/declarations/hello_backend/index.js" + assert_file_not_exists "src/declarations/hello_backend/index.d.ts" } @test "dfx generate does not create any files" { - dfx_new hello - jq '.canisters.hello_backend.declarations.bindings=[]' dfx.json | sponge dfx.json + dfx_new hello + jq '.canisters.hello_backend.declarations.bindings=[]' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - dfx build - dfx canister install --all + dfx_start + dfx canister create --all + dfx build + dfx canister install --all - dfx generate + dfx generate - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.js" - assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.d.ts" - assert_file_not_exists "src/declarations/hello_backend/index.js" - assert_file_not_exists "src/declarations/hello_backend/index.d.ts" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.js" + assert_file_not_exists "src/declarations/hello_backend/hello_backend.did.d.ts" + assert_file_not_exists "src/declarations/hello_backend/index.js" + assert_file_not_exists "src/declarations/hello_backend/index.d.ts" } @test "dfx generate succeeds with an encrypted identity without input" { - dfx_new hello - dfx_start - dfx canister create --all - - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" - assert_command dfx identity use alice - - assert_command timeout 30s dfx generate + dfx_new hello + dfx_start + dfx canister create --all + + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" + assert_command dfx identity use alice + + assert_command timeout 30s dfx generate } @test "dfx generate does not require canister IDs for non-Motoko canisters" { - dfx_new_rust hello - assert_command dfx generate + dfx_new_rust hello + assert_command dfx generate } @test "dfx generate does not require canister IDs for Motoko canisters" { - dfx_new hello - assert_command dfx generate + dfx_new hello + assert_command dfx generate } @test "dfx generate --network is still valid" { - # The option has no effect, but is still accepted to not break existing scripts - dfx_new hello - assert_command dfx generate --network local + # The option has no effect, but is still accepted to not break existing scripts + dfx_new hello + assert_command dfx generate --network local - # Option is not advertised anymore - assert_command dfx generate --help - assert_not_contains "--network" + # Option is not advertised anymore + assert_command dfx generate --help + assert_not_contains "--network" } diff --git a/e2e/tests-dfx/id.bash b/e2e/tests-dfx/id.bash index f019a3996a..9a46066db6 100644 --- a/e2e/tests-dfx/id.bash +++ b/e2e/tests-dfx/id.bash @@ -3,96 +3,96 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "id subcommand prints valid canister identifier" { - install_asset id - dfx_start - dfx canister create --all - dfx build - assert_command dfx canister id e2e_project_backend - assert_match "$(jq -r .e2e_project_backend.local < .dfx/local/canister_ids.json)" + install_asset id + dfx_start + dfx canister create --all + dfx build + assert_command dfx canister id e2e_project_backend + assert_match "$(jq -r .e2e_project_backend.local < .dfx/local/canister_ids.json)" } @test "id subcommand does not display warning about plaintext keys" { - install_asset id - dfx identity get-principal - echo "{}" | jq '.e2e_project_backend.ic = "bd3sg-teaaa-aaaaa-qaaba-cai"' >canister_ids.json - assert_command dfx canister id e2e_project_backend --ic - assert_eq "bd3sg-teaaa-aaaaa-qaaba-cai" + install_asset id + dfx identity get-principal + echo "{}" | jq '.e2e_project_backend.ic = "bd3sg-teaaa-aaaaa-qaaba-cai"' >canister_ids.json + assert_command dfx canister id e2e_project_backend --ic + assert_eq "bd3sg-teaaa-aaaaa-qaaba-cai" } @test "id subcommand works from a subdirectory of the project - ephemeral id" { - install_asset id - dfx_start - dfx canister create --all - ID=$(dfx canister id e2e_project_backend) - echo "canister id is $ID" + install_asset id + dfx_start + dfx canister create --all + ID=$(dfx canister id e2e_project_backend) + echo "canister id is $ID" - ( - cd src - dfx canister id e2e_project_backend - assert_command dfx canister id e2e_project_backend - assert_eq "$ID" - ) + ( + cd src + dfx canister id e2e_project_backend + assert_command dfx canister id e2e_project_backend + assert_eq "$ID" + ) } @test "id subcommand works from a subdirectory of the project - persistent id" { - install_asset id + install_asset id - jq '.networks.local.type="persistent"' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - ID=$(dfx canister id e2e_project_backend) - echo "canister id is $ID" - ( - cd src - dfx canister id e2e_project_backend - assert_command dfx canister id e2e_project_backend - assert_eq "$ID" - ) + jq '.networks.local.type="persistent"' dfx.json | sponge dfx.json + dfx_start + dfx canister create --all + ID=$(dfx canister id e2e_project_backend) + echo "canister id is $ID" + ( + cd src + dfx canister id e2e_project_backend + assert_command dfx canister id e2e_project_backend + assert_eq "$ID" + ) } @test "id subcommand uses default network for remotes only" { - install_asset id - install_shared_asset subnet_type/shared_network_settings/application - # Add a remote canister with a specific ID for one network and a different default for other networks. - jq '.canisters.external_canister = { - "build": "", - "candid": "candid/external_canister.did", - "remote": { - "id": { - "namedremote": "va76m-bqaaa-aaaaa-aaayq-cai", - "__default": "rkp4c-7iaaa-aaaaa-aaaca-cai" - } - }, - "type": "custom", - "wasm": "" - }' dfx.json | sponge dfx.json - # We need to define the networks we are going to use: - jq '.namedremote= {"type": "persistent", "providers": ["http://namedremote"]}' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - jq '.somethingelse= {"type": "persistent", "providers": ["http://somethingelse"]}' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - cat dfx.json - cat "$E2E_NETWORKS_JSON" - # Ok, start: - dfx_start || true - dfx canister create --all - # The local dfx canister ID should not be affected: - assert_command dfx canister id e2e_project_backend - assert_match "$(jq -r .e2e_project_backend.local < .dfx/local/canister_ids.json)" - # Named remotes should be unaffected: - assert_command dfx canister --network namedremote id external_canister - assert_match "va76m-bqaaa-aaaaa-aaayq-cai" - # Other remotes should use the default entry: - assert_command dfx canister --network somethingelse id external_canister - assert_match "rkp4c-7iaaa-aaaaa-aaaca-cai" + install_asset id + install_shared_asset subnet_type/shared_network_settings/application + # Add a remote canister with a specific ID for one network and a different default for other networks. + jq '.canisters.external_canister = { + "build": "", + "candid": "candid/external_canister.did", + "remote": { + "id": { + "namedremote": "va76m-bqaaa-aaaaa-aaayq-cai", + "__default": "rkp4c-7iaaa-aaaaa-aaaca-cai" + } + }, + "type": "custom", + "wasm": "" + }' dfx.json | sponge dfx.json + # We need to define the networks we are going to use: + jq '.namedremote= {"type": "persistent", "providers": ["http://namedremote"]}' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + jq '.somethingelse= {"type": "persistent", "providers": ["http://somethingelse"]}' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + cat dfx.json + cat "$E2E_NETWORKS_JSON" + # Ok, start: + dfx_start || true + dfx canister create --all + # The local dfx canister ID should not be affected: + assert_command dfx canister id e2e_project_backend + assert_match "$(jq -r .e2e_project_backend.local < .dfx/local/canister_ids.json)" + # Named remotes should be unaffected: + assert_command dfx canister --network namedremote id external_canister + assert_match "va76m-bqaaa-aaaaa-aaayq-cai" + # Other remotes should use the default entry: + assert_command dfx canister --network somethingelse id external_canister + assert_match "rkp4c-7iaaa-aaaaa-aaaca-cai" } diff --git a/e2e/tests-dfx/identity.bash b/e2e/tests-dfx/identity.bash index 4946491fa7..a39681152f 100644 --- a/e2e/tests-dfx/identity.bash +++ b/e2e/tests-dfx/identity.bash @@ -3,198 +3,198 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "identity new: name validation" { - assert_command_fail dfx identity new iden%tity --storage-mode plaintext - assert_match "Invalid identity name" + assert_command_fail dfx identity new iden%tity --storage-mode plaintext + assert_match "Invalid identity name" - assert_command_fail dfx identity new 'iden tity' --storage-mode plaintext - assert_match "Invalid identity name" + assert_command_fail dfx identity new 'iden tity' --storage-mode plaintext + assert_match "Invalid identity name" - assert_command_fail dfx identity new "iden\$tity" --storage-mode plaintext - assert_match "Invalid identity name" + assert_command_fail dfx identity new "iden\$tity" --storage-mode plaintext + assert_match "Invalid identity name" - assert_command_fail dfx identity new iden\\tity --storage-mode plaintext - assert_match "Invalid identity name" + assert_command_fail dfx identity new iden\\tity --storage-mode plaintext + assert_match "Invalid identity name" - assert_command_fail dfx identity new 'iden\ttity' --storage-mode plaintext - assert_match "Invalid identity name" + assert_command_fail dfx identity new 'iden\ttity' --storage-mode plaintext + assert_match "Invalid identity name" - assert_command_fail dfx identity new iden/tity --storage-mode plaintext - assert_match "Invalid identity name" + assert_command_fail dfx identity new iden/tity --storage-mode plaintext + assert_match "Invalid identity name" - assert_command dfx identity new i_den.ti-ty --storage-mode plaintext + assert_command dfx identity new i_den.ti-ty --storage-mode plaintext - assert_command dfx identity new i_den@ti-ty --storage-mode plaintext + assert_command dfx identity new i_den@ti-ty --storage-mode plaintext } @test "identity get-principal: the get-principal is the same as sender id" { - install_asset identity - dfx_start - assert_command dfx identity new --storage-mode plaintext jose + install_asset identity + dfx_start + assert_command dfx identity new --storage-mode plaintext jose - PRINCIPAL_ID=$(dfx identity get-principal --identity jose) + PRINCIPAL_ID=$(dfx identity get-principal --identity jose) - dfx canister create e2e_project_backend --identity jose - dfx build e2e_project_backend --identity jose - dfx canister install e2e_project_backend --identity jose + dfx canister create e2e_project_backend --identity jose + dfx build e2e_project_backend --identity jose + dfx canister install e2e_project_backend --identity jose - assert_command dfx canister call e2e_project_backend amInitializer --identity jose + assert_command dfx canister call e2e_project_backend amInitializer --identity jose - SENDER_ID=$(dfx canister call e2e_project_backend fromCall --identity jose) + SENDER_ID=$(dfx canister call e2e_project_backend fromCall --identity jose) - if [ "$PRINCIPAL_ID" -ne "$SENDER_ID" ]; then - echo "IDs did not match: Principal '${PRINCIPAL_ID}' != Sender '${SENDER_ID}'..." | fail - fi + if [ "$PRINCIPAL_ID" -ne "$SENDER_ID" ]; then + echo "IDs did not match: Principal '${PRINCIPAL_ID}' != Sender '${SENDER_ID}'..." | fail + fi } @test "identity get-principal (anonymous): the get-principal is the same as sender id" { - install_asset identity - dfx_start - assert_command dfx identity new --storage-mode plaintext jose + install_asset identity + dfx_start + assert_command dfx identity new --storage-mode plaintext jose - ANONYMOUS_PRINCIPAL_ID="2vxsx-fae" + ANONYMOUS_PRINCIPAL_ID="2vxsx-fae" - PRINCIPAL_ID=$(dfx identity get-principal --identity anonymous) + PRINCIPAL_ID=$(dfx identity get-principal --identity anonymous) - if [ "$PRINCIPAL_ID" -ne "$ANONYMOUS_PRINCIPAL_ID" ]; then - echo "IDs did not match: Principal '${ANONYMOUS_PRINCIPAL_ID}' != Sender '${PRINCIPAL_ID}'..." | fail - fi + if [ "$PRINCIPAL_ID" -ne "$ANONYMOUS_PRINCIPAL_ID" ]; then + echo "IDs did not match: Principal '${ANONYMOUS_PRINCIPAL_ID}' != Sender '${PRINCIPAL_ID}'..." | fail + fi - dfx canister create e2e_project_backend --identity jose - dfx build e2e_project_backend --identity jose - dfx canister install e2e_project_backend --identity jose + dfx canister create e2e_project_backend --identity jose + dfx build e2e_project_backend --identity jose + dfx canister install e2e_project_backend --identity jose - SENDER_ID=$(dfx canister call e2e_project_backend fromCall --identity anonymous) + SENDER_ID=$(dfx canister call e2e_project_backend fromCall --identity anonymous) - if [ "$ANONYMOUS_PRINCIPAL_ID" -ne "$SENDER_ID" ]; then - echo "IDs did not match: Principal '${ANONYMOUS_PRINCIPAL_ID}' != Sender '${SENDER_ID}'..." | fail - fi + if [ "$ANONYMOUS_PRINCIPAL_ID" -ne "$SENDER_ID" ]; then + echo "IDs did not match: Principal '${ANONYMOUS_PRINCIPAL_ID}' != Sender '${SENDER_ID}'..." | fail + fi } @test "calls and query receive the same principal from dfx" { - install_asset identity - dfx_start - dfx canister create --all - assert_command dfx build - assert_command dfx canister install --all - - ID_CALL=$(dfx canister call e2e_project_backend fromCall) - ID_QUERY=$(dfx canister call e2e_project_backend fromQuery) - if [ "$ID_CALL" -ne "$ID_QUERY" ]; then - echo "IDs did not match: call '${ID_CALL}' != query '${ID_QUERY}'..." | fail - fi - - ID=$(dfx canister call e2e_project_backend getCanisterId) - assert_command dfx canister call e2e_project_backend isMyself "$ID" - assert_eq '(true)' - assert_command dfx canister call e2e_project_backend isMyself "$ID_CALL" - assert_eq '(false)' + install_asset identity + dfx_start + dfx canister create --all + assert_command dfx build + assert_command dfx canister install --all + + ID_CALL=$(dfx canister call e2e_project_backend fromCall) + ID_QUERY=$(dfx canister call e2e_project_backend fromQuery) + if [ "$ID_CALL" -ne "$ID_QUERY" ]; then + echo "IDs did not match: call '${ID_CALL}' != query '${ID_QUERY}'..." | fail + fi + + ID=$(dfx canister call e2e_project_backend getCanisterId) + assert_command dfx canister call e2e_project_backend isMyself "$ID" + assert_eq '(true)' + assert_command dfx canister call e2e_project_backend isMyself "$ID_CALL" + assert_eq '(false)' } @test "dfx ping does not create a default identity" { - dfx_start + dfx_start - assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity.json" - assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" + assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity.json" + assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" - assert_command dfx ping + assert_command dfx ping - assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity.json" - assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" + assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity.json" + assert_file_not_exists "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" - # shellcheck disable=SC2154 - assert_not_match 'Creating' "$stderr" - # shellcheck disable=SC2154 - assert_not_match '(default.*identity|identity.*default)' "$stderr" - # shellcheck disable=SC2154 - assert_match "ic_api_version" "$stdout" + # shellcheck disable=SC2154 + assert_not_match 'Creating' "$stderr" + # shellcheck disable=SC2154 + assert_not_match '(default.*identity|identity.*default)' "$stderr" + # shellcheck disable=SC2154 + assert_match "ic_api_version" "$stdout" } @test "dfx canister: creates the default identity on first run" { - install_asset identity - dfx_start - assert_command dfx canister create e2e_project_backend - assert_match 'Creating the "default" identity.' "$stderr" + install_asset identity + dfx_start + assert_command dfx canister create e2e_project_backend + assert_match 'Creating the "default" identity.' "$stderr" } @test "after using a specific identity while creating a canister, that user is the initializer" { - install_asset identity - dfx_start - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - - dfx canister create --all --identity alice - assert_command dfx build --identity alice - assert_command dfx canister install --all --identity alice - - # The user Identity's principal is the initializer - assert_command dfx canister call e2e_project_backend amInitializer --identity alice - assert_eq '(true)' - - assert_command dfx canister call e2e_project_backend amInitializer --identity bob - assert_eq '(false)' - - # these all fail (other identities are not initializer; cannot store assets): - assert_command_fail dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' --identity bob - assert_command_fail dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' --identity default - assert_command_fail dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' - assert_command_fail dfx canister call e2e_project_frontend retrieve '("B")' - - # but alice, the initializer, can store assets: - assert_command dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' --identity alice - assert_eq '()' - assert_command dfx canister call --output idl e2e_project_frontend retrieve '("B")' - assert_eq '(blob "XWV")' + install_asset identity + dfx_start + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + + dfx canister create --all --identity alice + assert_command dfx build --identity alice + assert_command dfx canister install --all --identity alice + + # The user Identity's principal is the initializer + assert_command dfx canister call e2e_project_backend amInitializer --identity alice + assert_eq '(true)' + + assert_command dfx canister call e2e_project_backend amInitializer --identity bob + assert_eq '(false)' + + # these all fail (other identities are not initializer; cannot store assets): + assert_command_fail dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' --identity bob + assert_command_fail dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' --identity default + assert_command_fail dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' + assert_command_fail dfx canister call e2e_project_frontend retrieve '("B")' + + # but alice, the initializer, can store assets: + assert_command dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=vec { 88; 87; 86; }})' --identity alice + assert_eq '()' + assert_command dfx canister call --output idl e2e_project_frontend retrieve '("B")' + assert_eq '(blob "XWV")' } @test "after renaming an identity, the renamed identity is still initializer" { - install_asset identity - dfx_start - assert_command dfx identity new --storage-mode plaintext alice - - dfx canister create --all --identity alice - assert_command dfx build --identity alice - assert_command dfx canister install --all --identity alice - assert_command dfx canister call e2e_project_backend amInitializer --identity alice - assert_eq '(true)' - assert_command dfx canister call e2e_project_backend amInitializer - assert_eq '(false)' - - assert_command dfx identity rename alice bob - - assert_command dfx identity whoami - assert_eq 'default' - assert_command dfx canister call e2e_project_backend amInitializer --identity bob - assert_eq '(true)' - - assert_command dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=blob "hello"})' --identity bob - assert_eq '()' - assert_command dfx canister call --output idl e2e_project_frontend retrieve '("B")' - assert_eq '(blob "hello")' + install_asset identity + dfx_start + assert_command dfx identity new --storage-mode plaintext alice + + dfx canister create --all --identity alice + assert_command dfx build --identity alice + assert_command dfx canister install --all --identity alice + assert_command dfx canister call e2e_project_backend amInitializer --identity alice + assert_eq '(true)' + assert_command dfx canister call e2e_project_backend amInitializer + assert_eq '(false)' + + assert_command dfx identity rename alice bob + + assert_command dfx identity whoami + assert_eq 'default' + assert_command dfx canister call e2e_project_backend amInitializer --identity bob + assert_eq '(true)' + + assert_command dfx canister call e2e_project_frontend store '(record{key="B"; content_type="application/octet-stream"; content_encoding="identity"; content=blob "hello"})' --identity bob + assert_eq '()' + assert_command dfx canister call --output idl e2e_project_frontend retrieve '("B")' + assert_eq '(blob "hello")' } @test "using an unencrypted identity on mainnet provokes a warning" { - assert_command dfx ledger balance --network ic - assert_match "WARN: The default identity is not stored securely." "$stderr" - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/get_ledger_balance.exp" - dfx identity new bob --storage-mode plaintext - assert_command dfx ledger balance --network ic --identity bob - assert_match "WARN: The bob identity is not stored securely." "$stderr" - - export DFX_WARNING=-mainnet_plaintext_identity - assert_command dfx ledger balance --network ic --identity bob - assert_not_contains "not stored securely" "$stderr" + assert_command dfx ledger balance --network ic + assert_match "WARN: The default identity is not stored securely." "$stderr" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/get_ledger_balance.exp" + dfx identity new bob --storage-mode plaintext + assert_command dfx ledger balance --network ic --identity bob + assert_match "WARN: The bob identity is not stored securely." "$stderr" + + export DFX_WARNING=-mainnet_plaintext_identity + assert_command dfx ledger balance --network ic --identity bob + assert_not_contains "not stored securely" "$stderr" } diff --git a/e2e/tests-dfx/identity_command.bash b/e2e/tests-dfx/identity_command.bash index dd5cea5649..f02119f122 100644 --- a/e2e/tests-dfx/identity_command.bash +++ b/e2e/tests-dfx/identity_command.bash @@ -3,12 +3,12 @@ load ../utils/_ setup() { - standard_setup - export DFX_CI_MOCK_KEYRING_LOCATION="$MOCK_KEYRING_LOCATION" + standard_setup + export DFX_CI_MOCK_KEYRING_LOCATION="$MOCK_KEYRING_LOCATION" } teardown() { - standard_teardown + standard_teardown } ## @@ -16,15 +16,15 @@ teardown() { ## @test "identity get-principal: different identities have different principal ids" { - assert_command dfx identity new jose - assert_command dfx identity new juana + assert_command dfx identity new jose + assert_command dfx identity new juana - PRINCIPAL_ID_JOSE=$(dfx identity get-principal --identity jose) - PRINCIPAL_ID_JUANA=$(dfx identity get-principal --identity juana) + PRINCIPAL_ID_JOSE=$(dfx identity get-principal --identity jose) + PRINCIPAL_ID_JUANA=$(dfx identity get-principal --identity juana) - if [ "$PRINCIPAL_ID_JOSE" -eq "$PRINCIPAL_ID_JUANA" ]; then - echo "IDs should not match: Jose '${PRINCIPAL_ID_JOSE}' == Juana '${PRINCIPAL_ID_JUANA}'..." | fail - fi + if [ "$PRINCIPAL_ID_JOSE" -eq "$PRINCIPAL_ID_JUANA" ]; then + echo "IDs should not match: Jose '${PRINCIPAL_ID_JOSE}' == Juana '${PRINCIPAL_ID_JUANA}'..." | fail + fi } ## @@ -32,21 +32,21 @@ teardown() { ## @test "identity list: shows identities in alpha order" { - assert_command dfx identity new dan - assert_command dfx identity new frank - assert_command dfx identity new alice - assert_command dfx identity new bob - assert_command dfx identity list - assert_match \ + assert_command dfx identity new dan + assert_command dfx identity new frank + assert_command dfx identity new alice + assert_command dfx identity new bob + assert_command dfx identity list + assert_match \ 'alice anonymous bob dan default frank' - assert_command dfx identity new charlie - assert_command dfx identity list - assert_match \ + assert_command dfx identity new charlie + assert_command dfx identity list + assert_match \ 'alice anonymous bob @@ -57,16 +57,16 @@ frank' } @test "identity list: shows the anonymous identity" { - assert_command dfx identity list - # shellcheck disable=SC2154 - assert_match 'anonymous' "$stdout" + assert_command dfx identity list + # shellcheck disable=SC2154 + assert_match 'anonymous' "$stdout" } @test "identity list: shows the default identity" { - assert_command dfx identity list - assert_match 'default' "$stdout" - # shellcheck disable=SC2154 - assert_match 'Creating the "default" identity.' "$stderr" + assert_command dfx identity list + assert_match 'default' "$stdout" + # shellcheck disable=SC2154 + assert_match 'Creating the "default" identity.' "$stderr" } ## @@ -74,76 +74,76 @@ frank' ## @test "identity new: creates a new keyring identity" { - assert_command dfx identity new alice - assert_match 'Created identity: "alice".' "$stderr" - assert_command cat "$MOCK_KEYRING_LOCATION" - assert_match "internet_computer_identity_alice" + assert_command dfx identity new alice + assert_match 'Created identity: "alice".' "$stderr" + assert_command cat "$MOCK_KEYRING_LOCATION" + assert_match "internet_computer_identity_alice" - # does not change the default identity - assert_command dfx identity whoami - assert_eq 'default' + # does not change the default identity + assert_command dfx identity whoami + assert_eq 'default' } @test "identity new --storage-mode plaintext: creates a new identity" { - assert_command dfx identity new alice --storage-mode plaintext - assert_match 'Created identity: "alice".' "$stderr" - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_match "BEGIN EC PRIVATE KEY" + assert_command dfx identity new alice --storage-mode plaintext + assert_match 'Created identity: "alice".' "$stderr" + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_match "BEGIN EC PRIVATE KEY" - # does not change the default identity - assert_command dfx identity whoami - assert_eq 'default' + # does not change the default identity + assert_command dfx identity whoami + assert_eq 'default' } @test "identity new: cannot create an identity called anonymous" { - assert_command_fail dfx identity new anonymous + assert_command_fail dfx identity new anonymous } @test "identity new: cannot create an identity that already exists" { - assert_command dfx identity new bob - assert_command_fail dfx identity new bob - assert_match "Identity already exists" + assert_command dfx identity new bob + assert_command_fail dfx identity new bob + assert_match "Identity already exists" } @test "identity new: --force re-creates an identity" { - assert_command dfx identity new alice - dfx identity use alice - PRINCIPAL_1="$(dfx identity get-principal)" - assert_command dfx identity new --force alice - PRINCIPAL_2="$(dfx identity get-principal)" - assert_neq "$PRINCIPAL_1" "$PRINCIPAL_2" + assert_command dfx identity new alice + dfx identity use alice + PRINCIPAL_1="$(dfx identity get-principal)" + assert_command dfx identity new --force alice + PRINCIPAL_2="$(dfx identity get-principal)" + assert_neq "$PRINCIPAL_1" "$PRINCIPAL_2" } @test "identity new: --force does not switch to created identity" { - # Was a bug: https://dfinity.atlassian.net/browse/SDK-911 - assert_command dfx identity new --force alice - PRINCIPAL_ORIGINAL="$(dfx identity get-principal)" - assert_command dfx identity use alice - PRINCIPAL_ALICE="$(dfx identity get-principal)" - assert_neq "$PRINCIPAL_ORIGINAL" "$PRINCIPAL_ALICE" + # Was a bug: https://dfinity.atlassian.net/browse/SDK-911 + assert_command dfx identity new --force alice + PRINCIPAL_ORIGINAL="$(dfx identity get-principal)" + assert_command dfx identity use alice + PRINCIPAL_ALICE="$(dfx identity get-principal)" + assert_neq "$PRINCIPAL_ORIGINAL" "$PRINCIPAL_ALICE" } @test "identity new: create an HSM-backed identity" { - assert_command dfx identity new --hsm-pkcs11-lib-path /something/else/somewhere.so --hsm-key-id abcd4321 bob - assert_command jq -r .hsm.pkcs11_lib_path "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" - assert_eq "/something/else/somewhere.so" - assert_command jq -r .hsm.key_id "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" - assert_eq "abcd4321" + assert_command dfx identity new --hsm-pkcs11-lib-path /something/else/somewhere.so --hsm-key-id abcd4321 bob + assert_command jq -r .hsm.pkcs11_lib_path "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" + assert_eq "/something/else/somewhere.so" + assert_command jq -r .hsm.key_id "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" + assert_eq "abcd4321" } @test "identity new: key_id must be hex digits" { - assert_command_fail dfx identity new --hsm-pkcs11-lib-path xxx --hsm-key-id abcx bob - assert_match "Key id must contain only hex digits" + assert_command_fail dfx identity new --hsm-pkcs11-lib-path xxx --hsm-key-id abcx bob + assert_match "Key id must contain only hex digits" } @test "identity new: key_id must be an even number of digits" { - assert_command_fail dfx identity new --hsm-pkcs11-lib-path xxx --hsm-key-id fed64 bob - assert_match "Key id must consist of an even number of hex digits" + assert_command_fail dfx identity new --hsm-pkcs11-lib-path xxx --hsm-key-id fed64 bob + assert_match "Key id must consist of an even number of hex digits" } @test "identity new: key is compatible with openssl" { - assert_command dfx identity new --storage-mode plaintext bob - assert_command openssl ec -in "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" + assert_command dfx identity new --storage-mode plaintext bob + assert_command openssl ec -in "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" } ## @@ -151,99 +151,99 @@ frank' ## @test "identity remove: can remove an identity that exists" { - assert_command_fail cat "$MOCK_KEYRING_LOCATION" - assert_command dfx identity new alice + assert_command_fail cat "$MOCK_KEYRING_LOCATION" + assert_command dfx identity new alice - assert_command cat "$MOCK_KEYRING_LOCATION" - assert_match "internet_computer_identity_alice" - assert_command dfx identity list - assert_match \ + assert_command cat "$MOCK_KEYRING_LOCATION" + assert_match "internet_computer_identity_alice" + assert_command dfx identity list + assert_match \ 'alice anonymous default' - assert_command dfx identity remove alice - assert_match 'Removed identity "alice".' "$stderr" - assert_command cat "$MOCK_KEYRING_LOCATION" - assert_not_match "internet_computer_identity_alice" + assert_command dfx identity remove alice + assert_match 'Removed identity "alice".' "$stderr" + assert_command cat "$MOCK_KEYRING_LOCATION" + assert_not_match "internet_computer_identity_alice" - assert_command dfx identity list - assert_match 'default' + assert_command dfx identity list + assert_match 'default' } @test "identity remove --storage-mode plaintext: can remove an identity that exists" { - assert_command_fail head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_command dfx identity new alice --storage-mode plaintext + assert_command_fail head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_command dfx identity new alice --storage-mode plaintext - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_match "BEGIN EC PRIVATE KEY" - assert_command dfx identity list - assert_match \ + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_match "BEGIN EC PRIVATE KEY" + assert_command dfx identity list + assert_match \ 'alice anonymous default' - assert_command dfx identity remove alice - assert_match 'Removed identity "alice".' "$stderr" - assert_command_fail cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_command dfx identity remove alice + assert_match 'Removed identity "alice".' "$stderr" + assert_command_fail cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_command dfx identity list - assert_match 'default' + assert_command dfx identity list + assert_match 'default' } @test "identity remove: reports an error if no such identity" { - assert_command_fail dfx identity remove charlie + assert_command_fail dfx identity remove charlie } @test "identity remove: only remove identities with configured wallet if --drop-wallets is specified" { - # There's no replica running, and no real wallet. This is just a valid principal. - WALLET="rwlgt-iiaaa-aaaaa-aaaaa-cai" - assert_command dfx identity new alice - assert_command dfx identity use alice - assert_command dfx identity set-wallet --force "$WALLET" --network ic - assert_command dfx identity use default - assert_command_fail dfx identity remove alice - # make sure the configured wallet is displayed - assert_match "identity 'alice' on network 'ic' has wallet $WALLET" - assert_command dfx identity remove alice --drop-wallets - assert_match "identity 'alice' on network 'ic' has wallet $WALLET" + # There's no replica running, and no real wallet. This is just a valid principal. + WALLET="rwlgt-iiaaa-aaaaa-aaaaa-cai" + assert_command dfx identity new alice + assert_command dfx identity use alice + assert_command dfx identity set-wallet --force "$WALLET" --network ic + assert_command dfx identity use default + assert_command_fail dfx identity remove alice + # make sure the configured wallet is displayed + assert_match "identity 'alice' on network 'ic' has wallet $WALLET" + assert_command dfx identity remove alice --drop-wallets + assert_match "identity 'alice' on network 'ic' has wallet $WALLET" } @test "identity remove: cannot remove the non-default active identity" { - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity use alice - assert_command_fail dfx identity remove alice - - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_match "BEGIN EC PRIVATE KEY" - assert_command dfx identity list - assert_match \ + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity use alice + assert_command_fail dfx identity remove alice + + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_match "BEGIN EC PRIVATE KEY" + assert_command dfx identity list + assert_match \ 'alice anonymous default' } @test "identity remove: cannot remove the default identity" { - # a new one will just get created again - assert_command_fail dfx identity remove default - assert_match "Cannot delete the default identity" + # a new one will just get created again + assert_command_fail dfx identity remove default + assert_match "Cannot delete the default identity" } @test "identity remove: cannot remove the anonymous identity" { - assert_command_fail dfx identity remove anonymous + assert_command_fail dfx identity remove anonymous } @test "identity remove: can remove an HSM-backed identity" { - assert_command dfx identity new --hsm-pkcs11-lib-path /something/else/somewhere.so --hsm-key-id abcd4321 bob - assert_command jq -r .hsm.pkcs11_lib_path "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" - assert_eq "/something/else/somewhere.so" - assert_command jq -r .hsm.key_id "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" - assert_eq "abcd4321" - assert_command ls "$DFX_CONFIG_ROOT/.config/dfx/identity/bob" + assert_command dfx identity new --hsm-pkcs11-lib-path /something/else/somewhere.so --hsm-key-id abcd4321 bob + assert_command jq -r .hsm.pkcs11_lib_path "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" + assert_eq "/something/else/somewhere.so" + assert_command jq -r .hsm.key_id "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.json" + assert_eq "abcd4321" + assert_command ls "$DFX_CONFIG_ROOT/.config/dfx/identity/bob" - assert_command dfx identity remove bob - assert_command_fail ls "$DFX_CONFIG_ROOT/.config/dfx/identity/bob" + assert_command dfx identity remove bob + assert_command_fail ls "$DFX_CONFIG_ROOT/.config/dfx/identity/bob" } ## @@ -251,110 +251,110 @@ default' ## @test "identity rename: can rename an identity" { - assert_command dfx identity new alice - assert_command dfx identity list - assert_match \ + assert_command dfx identity new alice + assert_command dfx identity list + assert_match \ 'alice anonymous default' - assert_command cat "$MOCK_KEYRING_LOCATION" - assert_match "internet_computer_identity_alice" - KEY="$(dfx identity export alice)" + assert_command cat "$MOCK_KEYRING_LOCATION" + assert_match "internet_computer_identity_alice" + KEY="$(dfx identity export alice)" - assert_command dfx identity rename alice bob - assert_match 'Renamed identity "alice" to "bob".' "$stderr" + assert_command dfx identity rename alice bob + assert_match 'Renamed identity "alice" to "bob".' "$stderr" - assert_command dfx identity list - assert_match \ + assert_command dfx identity list + assert_match \ 'anonymous bob default' - assert_command cat "$MOCK_KEYRING_LOCATION" - assert_match "internet_computer_identity_bob" - assert_eq "$KEY" "$(dfx identity export bob)" - assert_command cat "$MOCK_KEYRING_LOCATION" - assert_not_match "internet_computer_identity_alice" + assert_command cat "$MOCK_KEYRING_LOCATION" + assert_match "internet_computer_identity_bob" + assert_eq "$KEY" "$(dfx identity export bob)" + assert_command cat "$MOCK_KEYRING_LOCATION" + assert_not_match "internet_computer_identity_alice" } @test "identity rename --storage-mode plaintext: can rename an identity" { - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity list - assert_match \ + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity list + assert_match \ 'alice anonymous default' - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_match "BEGIN EC PRIVATE KEY" - x=$(cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem") - KEY="$x" + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_match "BEGIN EC PRIVATE KEY" + x=$(cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem") + KEY="$x" - assert_command dfx identity rename alice bob - assert_match 'Renamed identity "alice" to "bob".' "$stderr" + assert_command dfx identity rename alice bob + assert_match 'Renamed identity "alice" to "bob".' "$stderr" - assert_command dfx identity list - assert_match \ + assert_command dfx identity list + assert_match \ 'anonymous bob default' - assert_command cat "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" - assert_eq "$KEY" "$(cat "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem")" - assert_match "BEGIN EC PRIVATE KEY" - assert_command_fail cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_command cat "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" + assert_eq "$KEY" "$(cat "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem")" + assert_match "BEGIN EC PRIVATE KEY" + assert_command_fail cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" } @test "identity rename: can rename the default identity, which also changes the default" { - assert_command dfx identity list - assert_match 'default' - assert_command dfx identity rename default bob - assert_command dfx identity list - assert_match 'bob' - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" - assert_match "BEGIN EC PRIVATE KEY" + assert_command dfx identity list + assert_match 'default' + assert_command dfx identity rename default bob + assert_command dfx identity list + assert_match 'bob' + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" + assert_match "BEGIN EC PRIVATE KEY" - assert_command dfx identity whoami - assert_eq 'bob' + assert_command dfx identity whoami + assert_eq 'bob' } @test "identity rename: can rename the selected identity, which also changes the default" { - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity use alice - assert_command dfx identity list - assert_match \ + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity use alice + assert_command dfx identity list + assert_match \ 'alice anonymous default' - assert_command dfx identity rename alice charlie + assert_command dfx identity rename alice charlie - assert_command dfx identity list - assert_match \ + assert_command dfx identity list + assert_match \ 'anonymous charlie default' - assert_command dfx identity whoami - assert_eq 'charlie' + assert_command dfx identity whoami + assert_eq 'charlie' - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/charlie/identity.pem" - assert_match "BEGIN EC PRIVATE KEY" - assert_command_fail cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/charlie/identity.pem" + assert_match "BEGIN EC PRIVATE KEY" + assert_command_fail cat "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" } @test "identity rename: cannot create an anonymous identity via rename" { assert_command dfx identity new alice - assert_command_fail dfx identity rename alice anonymous - assert_match "Cannot create an anonymous identity" + assert_command_fail dfx identity rename alice anonymous + assert_match "Cannot create an anonymous identity" } @test "identity rename: can rename an HSM-backed identity" { - skip "Need to instantiate identity when renaming so skipping until we have an hsm mock" - assert_command dfx identity new --hsm-pkcs11-lib-path /something/else/somewhere.so --hsm-key-id abcd4321 bob - assert_command dfx identity rename bob alice - assert_command_fail ls "$DFX_CONFIG_ROOT/.config/dfx/identity/bob" + skip "Need to instantiate identity when renaming so skipping until we have an hsm mock" + assert_command dfx identity new --hsm-pkcs11-lib-path /something/else/somewhere.so --hsm-key-id abcd4321 bob + assert_command dfx identity rename bob alice + assert_command_fail ls "$DFX_CONFIG_ROOT/.config/dfx/identity/bob" - assert_command jq -r .hsm.pkcs11_lib_path "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.json" - assert_eq "/something/else/somewhere.so" - assert_command jq -r .hsm.key_id "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.json" - assert_eq "abcd4321" + assert_command jq -r .hsm.pkcs11_lib_path "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.json" + assert_eq "/something/else/somewhere.so" + assert_command jq -r .hsm.key_id "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.json" + assert_eq "abcd4321" } ## @@ -362,46 +362,46 @@ default' ## @test "identity use: switches to an existing identity" { - assert_command dfx identity new alice - assert_command dfx identity whoami - assert_eq 'default' - assert_command dfx identity use alice - assert_command dfx identity whoami - assert_eq 'alice' + assert_command dfx identity new alice + assert_command dfx identity whoami + assert_eq 'default' + assert_command dfx identity use alice + assert_command dfx identity whoami + assert_eq 'alice' - ## and back - assert_command dfx identity use default - assert_command dfx identity whoami - assert_eq 'default' + ## and back + assert_command dfx identity use default + assert_command dfx identity whoami + assert_eq 'default' } @test "identity use: cannot use an identity that has not been created yet" { - assert_command_fail dfx identity use alice - assert_command dfx identity whoami - assert_eq 'default' + assert_command_fail dfx identity use alice + assert_command dfx identity whoami + assert_eq 'default' } @test "identity use: can switch to the anonymous identity" { - assert_command dfx identity use anonymous - assert_command dfx identity whoami - assert_eq 'anonymous' - assert_command dfx identity get-principal - assert_eq '2vxsx-fae' + assert_command dfx identity use anonymous + assert_command dfx identity whoami + assert_eq 'anonymous' + assert_command dfx identity get-principal + assert_eq '2vxsx-fae' } @test "identity use: is overridden by env var DFX_IDENTITY" { - assert_command dfx identity new dan - assert_command dfx identity new frank - assert_command dfx identity new alice - assert_command dfx identity use dan - assert_command dfx identity whoami - assert_eq 'dan' - DFX_IDENTITY=frank - export DFX_IDENTITY - assert_command dfx identity whoami - assert_eq 'frank' - assert_command dfx identity whoami --identity alice - assert_eq 'alice' + assert_command dfx identity new dan + assert_command dfx identity new frank + assert_command dfx identity new alice + assert_command dfx identity use dan + assert_command dfx identity whoami + assert_eq 'dan' + DFX_IDENTITY=frank + export DFX_IDENTITY + assert_command dfx identity whoami + assert_eq 'frank' + assert_command dfx identity whoami --identity alice + assert_eq 'alice' } @@ -410,165 +410,165 @@ default' ## @test "identity whoami: creates the default identity on first run" { - # Just an example. All the identity commands do this. - assert_command dfx identity whoami - assert_eq 'default' "$stdout" - assert_match 'Creating the "default" identity.' "$stderr" - assert_match 'Created the "default" identity.' "$stderr" + # Just an example. All the identity commands do this. + assert_command dfx identity whoami + assert_eq 'default' "$stdout" + assert_match 'Creating the "default" identity.' "$stderr" + assert_match 'Created the "default" identity.' "$stderr" } @test "identity whoami: shows the current identity" { - assert_command dfx identity whoami - assert_eq 'default' "$stdout" - assert_command dfx identity new charlie - assert_command dfx identity whoami - assert_eq 'default' - assert_command dfx identity use charlie - assert_command dfx identity whoami - assert_eq 'charlie' + assert_command dfx identity whoami + assert_eq 'default' "$stdout" + assert_command dfx identity new charlie + assert_command dfx identity whoami + assert_eq 'default' + assert_command dfx identity use charlie + assert_command dfx identity whoami + assert_eq 'charlie' } ## dfx (+other commands) --identity @test "dfx identity whoami --identity (name): shows the overriding identity" { - assert_command dfx identity whoami - assert_eq 'default' "$stdout" - assert_command dfx identity new charlie - assert_command dfx identity new alice - assert_command dfx identity whoami --identity charlie - assert_eq 'charlie' - assert_command dfx identity whoami --identity alice - assert_eq 'alice' + assert_command dfx identity whoami + assert_eq 'default' "$stdout" + assert_command dfx identity new charlie + assert_command dfx identity new alice + assert_command dfx identity whoami --identity charlie + assert_eq 'charlie' + assert_command dfx identity whoami --identity alice + assert_eq 'alice' } @test "dfx (command) --identity does not persistently change the selected identity" { - assert_command dfx identity whoami - assert_eq 'default' "$stdout" - assert_command dfx identity new charlie - assert_command dfx identity new alice - assert_command dfx identity use charlie - assert_command dfx identity whoami - assert_eq 'charlie' - assert_command dfx identity whoami --identity alice - assert_eq 'alice' - assert_command dfx identity whoami - assert_eq 'charlie' + assert_command dfx identity whoami + assert_eq 'default' "$stdout" + assert_command dfx identity new charlie + assert_command dfx identity new alice + assert_command dfx identity use charlie + assert_command dfx identity whoami + assert_eq 'charlie' + assert_command dfx identity whoami --identity alice + assert_eq 'alice' + assert_command dfx identity whoami + assert_eq 'charlie' } ## ## Identity key migration ## @test "identity manager copies existing key from $DFX_CONFIG_ROOT/.dfinity/identity/creds.pem" { - assert_command dfx identity whoami - assert_command mkdir -p "$DFX_CONFIG_ROOT/.dfinity/identity" - assert_command mv "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" "$DFX_CONFIG_ROOT/.dfinity/identity/creds.pem" - ORIGINAL_KEY=$(cat "$DFX_CONFIG_ROOT/.dfinity/identity/creds.pem") - assert_command rmdir "$DFX_CONFIG_ROOT/.config/dfx/identity/default" - assert_command rmdir "$DFX_CONFIG_ROOT/.config/dfx/identity" - assert_command rm "$DFX_CONFIG_ROOT/.config/dfx/identity.json" - assert_command rmdir "$DFX_CONFIG_ROOT/.config/dfx" - assert_command rmdir "$DFX_CONFIG_ROOT/.config" + assert_command dfx identity whoami + assert_command mkdir -p "$DFX_CONFIG_ROOT/.dfinity/identity" + assert_command mv "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" "$DFX_CONFIG_ROOT/.dfinity/identity/creds.pem" + ORIGINAL_KEY=$(cat "$DFX_CONFIG_ROOT/.dfinity/identity/creds.pem") + assert_command rmdir "$DFX_CONFIG_ROOT/.config/dfx/identity/default" + assert_command rmdir "$DFX_CONFIG_ROOT/.config/dfx/identity" + assert_command rm "$DFX_CONFIG_ROOT/.config/dfx/identity.json" + assert_command rmdir "$DFX_CONFIG_ROOT/.config/dfx" + assert_command rmdir "$DFX_CONFIG_ROOT/.config" - assert_command dfx identity whoami + assert_command dfx identity whoami - assert_match "migrating key from" - assert_eq "$(cat "$DFX_CONFIG_ROOT"/.config/dfx/identity/default/identity.pem)" "$ORIGINAL_KEY" + assert_match "migrating key from" + assert_eq "$(cat "$DFX_CONFIG_ROOT"/.config/dfx/identity/default/identity.pem)" "$ORIGINAL_KEY" } @test "identity: import" { - openssl ecparam -name secp256k1 -genkey -out identity.pem - assert_command dfx identity import alice identity.pem - assert_match 'Imported identity: "alice".' "$stderr" - assert_command bash -c "dfx identity export alice > alice.pem" - assert_command diff identity.pem alice.pem - assert_eq "" + openssl ecparam -name secp256k1 -genkey -out identity.pem + assert_command dfx identity import alice identity.pem + assert_match 'Imported identity: "alice".' "$stderr" + assert_command bash -c "dfx identity export alice > alice.pem" + assert_command diff identity.pem alice.pem + assert_eq "" } @test "identity: import can only overwrite identity with --force" { - openssl ecparam -name secp256k1 -genkey -out identity.pem - openssl ecparam -name secp256k1 -genkey -out identity2.pem - assert_command dfx identity import alice identity.pem - assert_match 'Imported identity: "alice".' "$stderr" - dfx identity use alice - PRINCIPAL_1="$(dfx identity get-principal)" + openssl ecparam -name secp256k1 -genkey -out identity.pem + openssl ecparam -name secp256k1 -genkey -out identity2.pem + assert_command dfx identity import alice identity.pem + assert_match 'Imported identity: "alice".' "$stderr" + dfx identity use alice + PRINCIPAL_1="$(dfx identity get-principal)" - assert_command_fail dfx identity import alice identity2.pem - assert_match "Identity already exists." - assert_command dfx identity import --force alice identity2.pem - assert_match 'Imported identity: "alice".' - PRINCIPAL_2="$(dfx identity get-principal)" + assert_command_fail dfx identity import alice identity2.pem + assert_match "Identity already exists." + assert_command dfx identity import --force alice identity2.pem + assert_match 'Imported identity: "alice".' + PRINCIPAL_2="$(dfx identity get-principal)" - assert_neq "$PRINCIPAL_1" "$PRINCIPAL_2" + assert_neq "$PRINCIPAL_1" "$PRINCIPAL_2" } @test "identity: import default" { - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity import bob "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_match 'Imported identity: "bob".' "$stderr" - assert_command bash -c "dfx identity export bob > bob.pem" - assert_command diff "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" "bob.pem" - assert_eq "" + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity import bob "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_match 'Imported identity: "bob".' "$stderr" + assert_command bash -c "dfx identity export bob > bob.pem" + assert_command diff "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" "bob.pem" + assert_eq "" } @test "identity: import --storage-mode plaintext" { - assert_command dfx identity new alice --storage-mode plaintext - assert_command dfx identity import bob "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" --storage-mode plaintext - assert_match 'Imported identity: "bob".' "$stderr" - assert_command diff "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" - assert_eq "" + assert_command dfx identity new alice --storage-mode plaintext + assert_command dfx identity import bob "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" --storage-mode plaintext + assert_match 'Imported identity: "bob".' "$stderr" + assert_command diff "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" "$DFX_CONFIG_ROOT/.config/dfx/identity/bob/identity.pem" + assert_eq "" } @test "identity: cannot import invalid PEM file" { - assert_command dfx identity new alice --storage-mode plaintext - assert_command cp "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" ./alice.pem - # Following 3 lines manipulate the pem file so that it will be invalid - head -n 1 alice.pem > bob.pem - echo -n 1 >> bob.pem - tail -n 3 alice.pem > bob.pem - assert_command_fail dfx identity import bob bob.pem - assert_match 'Failed to validate PEM content' "$stderr" + assert_command dfx identity new alice --storage-mode plaintext + assert_command cp "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" ./alice.pem + # Following 3 lines manipulate the pem file so that it will be invalid + head -n 1 alice.pem > bob.pem + echo -n 1 >> bob.pem + tail -n 3 alice.pem > bob.pem + assert_command_fail dfx identity import bob bob.pem + assert_match 'Failed to validate PEM content' "$stderr" } @test "identity: can import an EC key without an EC PARAMETERS section (as quill generate makes)" { - cat >private-key-no-ec-parameters.pem <private-key-no-ec-parameters.pem <dfx.json # avoid "dfx.json not found, using default." - assert_command dfx ledger account-id --identity private-key-no-ec-parameters - assert_eq "3c00cf85d77b9dbf74a2acec1d9a9e73a3fc65f5048c64800b15f3b2c4c8eb11" + assert_command dfx identity import private-key-no-ec-parameters private-key-no-ec-parameters.pem + assert_command dfx identity get-principal --identity private-key-no-ec-parameters + assert_eq "j4p4p-o5ogq-4gzev-t3kay-hpm5o-xuwpz-yvrpp-47cc4-qyunt-k76yw-qae" + echo "{}" >dfx.json # avoid "dfx.json not found, using default." + assert_command dfx ledger account-id --identity private-key-no-ec-parameters + assert_eq "3c00cf85d77b9dbf74a2acec1d9a9e73a3fc65f5048c64800b15f3b2c4c8eb11" } @test "identity: can export and re-import an identity" { - assert_command dfx identity new alice - dfx identity export alice > export.pem - assert_file_exists export.pem - assert_command dfx identity import bob export.pem + assert_command dfx identity new alice + dfx identity export alice > export.pem + assert_file_exists export.pem + assert_command dfx identity import bob export.pem } @test "identity: can import a seed phrase" { - reg="seed phrase for identity 'alice': ([a-z ]+)" - assert_command dfx identity new alice - [[ $stderr =~ $reg ]] - echo "${BASH_REMATCH[1]}" >seed.txt - principal=$(dfx identity get-principal --identity alice) - assert_command dfx identity import alice2 --seed-file seed.txt --storage-mode plaintext - assert_command dfx identity get-principal --identity alice2 - assert_eq "$principal" - dfx identity export alice2 > export.pem - assert_command openssl asn1parse -in export.pem - assert_match ':secp256k1' + reg="seed phrase for identity 'alice': ([a-z ]+)" + assert_command dfx identity new alice + [[ $stderr =~ $reg ]] + echo "${BASH_REMATCH[1]}" >seed.txt + principal=$(dfx identity get-principal --identity alice) + assert_command dfx identity import alice2 --seed-file seed.txt --storage-mode plaintext + assert_command dfx identity get-principal --identity alice2 + assert_eq "$principal" + dfx identity export alice2 > export.pem + assert_command openssl asn1parse -in export.pem + assert_match ':secp256k1' } @test "identity: consistently imports a known seed phrase" { - echo "display dawn estate night naive stomach receive lock expose boring square boy deposit mistake volume soldier coil rocket match diamond repair opinion action paddle">seed.txt - assert_command dfx identity import alice --seed-file seed.txt --storage-mode plaintext - assert_command dfx identity get-principal --identity alice - assert_eq "qimd7-lqrvx-kdvsm-7zeqn-bgoix-ukjfi-hgmfg-ur2he-odgb2-joms4-nae" + echo "display dawn estate night naive stomach receive lock expose boring square boy deposit mistake volume soldier coil rocket match diamond repair opinion action paddle">seed.txt + assert_command dfx identity import alice --seed-file seed.txt --storage-mode plaintext + assert_command dfx identity get-principal --identity alice + assert_eq "qimd7-lqrvx-kdvsm-7zeqn-bgoix-ukjfi-hgmfg-ur2he-odgb2-joms4-nae" } diff --git a/e2e/tests-dfx/identity_encryption.bash b/e2e/tests-dfx/identity_encryption.bash index 6f545d659f..b986b9a438 100755 --- a/e2e/tests-dfx/identity_encryption.bash +++ b/e2e/tests-dfx/identity_encryption.bash @@ -3,12 +3,12 @@ load ../utils/_ setup() { - standard_setup - export DFX_CI_USE_PROXY_KEYRING="" + standard_setup + export DFX_CI_USE_PROXY_KEYRING="" } teardown() { - standard_teardown + standard_teardown } # @@ -17,18 +17,18 @@ teardown() { # @test "can create and use identity with password" { - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/create_identity_with_password.exp" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/create_identity_with_password.exp" } @test "wrong password is rejected" { - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/wrong_password_rejected.exp" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/init_alice_with_pw.exp" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/wrong_password_rejected.exp" } @test "import and export identity with a password are inverse operations" { - # key generated using `openssl ecparam -genkey -name secp256k1` - cat >import.pem <import.pem <> postinstall.sh - assert_command_fail dfx canister install postinstall_script --mode upgrade - assert_match 'hello-script' + assert_command dfx canister install postinstall_script + assert_match 'hello-script' + + echo 'return 1' >> postinstall.sh + assert_command_fail dfx canister install postinstall_script --mode upgrade + assert_match 'hello-script' } @test "post-install tasks receive environment variables" { - install_asset post_install - dfx_start - echo "echo hello \$CANISTER_ID" >> postinstall.sh + install_asset post_install + dfx_start + echo "echo hello \$CANISTER_ID" >> postinstall.sh - assert_command dfx canister create --all - assert_command dfx build - id=$(dfx canister id postinstall_script) + assert_command dfx canister create --all + assert_command dfx build + id=$(dfx canister id postinstall_script) - assert_command dfx canister install --all - assert_match "hello $id" - assert_command dfx canister install postinstall_script --mode upgrade - assert_match "hello $id" + assert_command dfx canister install --all + assert_match "hello $id" + assert_command dfx canister install postinstall_script --mode upgrade + assert_match "hello $id" - assert_command dfx deploy - assert_match "hello $id" - assert_command dfx deploy postinstall_script - assert_match "hello $id" + assert_command dfx deploy + assert_match "hello $id" + assert_command dfx deploy postinstall_script + assert_match "hello $id" } @test "post-install tasks discover dependencies" { - install_asset post_install - dfx_start - echo "echo hello \$CANISTER_ID_postinstall" >> postinstall.sh + install_asset post_install + dfx_start + echo "echo hello \$CANISTER_ID_postinstall" >> postinstall.sh + + assert_command dfx canister create --all + assert_command dfx build + id=$(dfx canister id postinstall) - assert_command dfx canister create --all - assert_command dfx build - id=$(dfx canister id postinstall) - - assert_command dfx canister install postinstall_script - assert_match "hello $id" + assert_command dfx canister install postinstall_script + assert_match "hello $id" } @test "can install gzip wasm" { - jq '.canisters.e2e_project_backend.gzip=true' dfx.json | sponge dfx.json - dfx_start - dfx canister create --all - assert_command dfx build - assert_command dfx canister install --all - BUILD_HASH="0x$(sha256sum .dfx/local/canisters/e2e_project_backend/e2e_project_backend.wasm.gz | cut -d " " -f 1)" - ONCHAIN_HASH="$(dfx canister info e2e_project_backend | tail -n 1 | cut -d " " -f 3)" - assert_eq "$BUILD_HASH" "$ONCHAIN_HASH" + jq '.canisters.e2e_project_backend.gzip=true' dfx.json | sponge dfx.json + dfx_start + dfx canister create --all + assert_command dfx build + assert_command dfx canister install --all + BUILD_HASH="0x$(sha256sum .dfx/local/canisters/e2e_project_backend/e2e_project_backend.wasm.gz | cut -d " " -f 1)" + ONCHAIN_HASH="$(dfx canister info e2e_project_backend | tail -n 1 | cut -d " " -f 3)" + assert_eq "$BUILD_HASH" "$ONCHAIN_HASH" } @test "--mode=auto selects install or upgrade automatically" { - dfx_start - assert_command dfx canister create e2e_project_backend - assert_command dfx build e2e_project_backend - assert_command dfx canister install e2e_project_backend --mode auto - assert_command dfx canister call e2e_project_backend greet dfx - assert_command dfx canister install e2e_project_backend --mode auto --upgrade-unchanged - assert_command dfx canister call e2e_project_backend greet dfx + dfx_start + assert_command dfx canister create e2e_project_backend + assert_command dfx build e2e_project_backend + assert_command dfx canister install e2e_project_backend --mode auto + assert_command dfx canister call e2e_project_backend greet dfx + assert_command dfx canister install e2e_project_backend --mode auto --upgrade-unchanged + assert_command dfx canister call e2e_project_backend greet dfx } @test "-y skips compat check" { - dfx_start - assert_command dfx canister create e2e_project_backend - assert_command dfx build e2e_project_backend - assert_command dfx canister install e2e_project_backend - assert_command timeout -s9 20s dfx canister install e2e_project_backend --mode reinstall -y # if -y does not work, hangs without stdin + dfx_start + assert_command dfx canister create e2e_project_backend + assert_command dfx build e2e_project_backend + assert_command dfx canister install e2e_project_backend + assert_command timeout -s9 20s dfx canister install e2e_project_backend --mode reinstall -y # if -y does not work, hangs without stdin } @test "--no-asset-upgrade skips asset upgrade" { - dfx_start - use_asset_wasm 0.12.1 - dfx deploy - assert_command dfx canister info e2e_project_frontend - assert_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 - use_default_asset_wasm - assert_command dfx canister install e2e_project_frontend --mode upgrade --no-asset-upgrade - assert_command dfx canister info e2e_project_frontend - assert_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 + dfx_start + use_asset_wasm 0.12.1 + dfx deploy + assert_command dfx canister info e2e_project_frontend + assert_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 + use_default_asset_wasm + assert_command dfx canister install e2e_project_frontend --mode upgrade --no-asset-upgrade + assert_command dfx canister info e2e_project_frontend + assert_contains db07e7e24f6f8ddf53c33a610713259a7c1eb71c270b819ebd311e2d223267f0 } @test "installing multiple canisters with arguments fails" { - assert_command_fail dfx canister install --all --argument hello - assert_contains "error: the argument '--all' cannot be used with '--argument '" + assert_command_fail dfx canister install --all --argument hello + assert_contains "error: the argument '--all' cannot be used with '--argument '" } diff --git a/e2e/tests-dfx/inter.bash b/e2e/tests-dfx/inter.bash index 29934134a6..3c6e1783a5 100644 --- a/e2e/tests-dfx/inter.bash +++ b/e2e/tests-dfx/inter.bash @@ -3,62 +3,62 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop - # stop_dfx_replica - # stop_dfx_bootstrap - standard_teardown + dfx_stop + # stop_dfx_replica + # stop_dfx_bootstrap + standard_teardown } @test "inter-canister calls" { - dfx_new_rust inter - install_asset inter - dfx_start - dfx deploy + dfx_new_rust inter + install_asset inter + dfx_start + dfx deploy - # calling motoko canister from rust canister - assert_command dfx canister call inter_rs read - assert_match '(0 : nat)' - assert_command dfx canister call inter_rs inc - assert_command dfx canister call inter_rs read - assert_match '(1 : nat)' - assert_command dfx canister call inter_rs write '(5)' - assert_command dfx canister call inter_rs read - assert_match '(5 : nat)' + # calling motoko canister from rust canister + assert_command dfx canister call inter_rs read + assert_match '(0 : nat)' + assert_command dfx canister call inter_rs inc + assert_command dfx canister call inter_rs read + assert_match '(1 : nat)' + assert_command dfx canister call inter_rs write '(5)' + assert_command dfx canister call inter_rs read + assert_match '(5 : nat)' - # calling rust canister from motoko canister - assert_command dfx canister call inter_mo write '(0)' - assert_command dfx canister call inter_mo read - assert_match '(0 : nat)' - assert_command dfx canister call inter_mo inc - assert_command dfx canister call inter_mo read - assert_match '(1 : nat)' - assert_command dfx canister call inter_mo write '(6)' - assert_command dfx canister call inter_mo read - assert_match '(6 : nat)' + # calling rust canister from motoko canister + assert_command dfx canister call inter_mo write '(0)' + assert_command dfx canister call inter_mo read + assert_match '(0 : nat)' + assert_command dfx canister call inter_mo inc + assert_command dfx canister call inter_mo read + assert_match '(1 : nat)' + assert_command dfx canister call inter_mo write '(6)' + assert_command dfx canister call inter_mo read + assert_match '(6 : nat)' - # calling rust canister from rust canister, trough motoko canisters - assert_command dfx canister call inter2_rs write '(0)' - assert_command dfx canister call inter2_rs read - assert_match '(0 : nat)' - assert_command dfx canister call inter2_rs inc - assert_command dfx canister call inter2_rs read - assert_match '(1 : nat)' - assert_command dfx canister call inter2_rs write '(7)' - assert_command dfx canister call inter2_rs read - assert_match '(7 : nat)' + # calling rust canister from rust canister, trough motoko canisters + assert_command dfx canister call inter2_rs write '(0)' + assert_command dfx canister call inter2_rs read + assert_match '(0 : nat)' + assert_command dfx canister call inter2_rs inc + assert_command dfx canister call inter2_rs read + assert_match '(1 : nat)' + assert_command dfx canister call inter2_rs write '(7)' + assert_command dfx canister call inter2_rs read + assert_match '(7 : nat)' - # calling motoko canister from motoko canister, trough rust canisters - assert_command dfx canister call inter2_mo write '(0)' - assert_command dfx canister call inter2_mo read - assert_match '(0 : nat)' - assert_command dfx canister call inter2_mo inc - assert_command dfx canister call inter2_mo read - assert_match '(1 : nat)' - assert_command dfx canister call inter2_mo write '(8)' - assert_command dfx canister call inter2_mo read - assert_match '(8 : nat)' + # calling motoko canister from motoko canister, trough rust canisters + assert_command dfx canister call inter2_mo write '(0)' + assert_command dfx canister call inter2_mo read + assert_match '(0 : nat)' + assert_command dfx canister call inter2_mo inc + assert_command dfx canister call inter2_mo read + assert_match '(1 : nat)' + assert_command dfx canister call inter2_mo write '(8)' + assert_command dfx canister call inter2_mo read + assert_match '(8 : nat)' } diff --git a/e2e/tests-dfx/leak.bash b/e2e/tests-dfx/leak.bash index 82a01b516c..5639f8a991 100644 --- a/e2e/tests-dfx/leak.bash +++ b/e2e/tests-dfx/leak.bash @@ -3,24 +3,24 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "repeated install wasm" { - install_asset custom_canister - install_asset wasm/identity - dfx_start - dfx deploy - for _ in {1..50} - do - echo yes | dfx canister install --mode=reinstall custom - done + install_asset custom_canister + install_asset wasm/identity + dfx_start + dfx deploy + for _ in {1..50} + do + echo yes | dfx canister install --mode=reinstall custom + done } diff --git a/e2e/tests-dfx/ledger.bash b/e2e/tests-dfx/ledger.bash index dc225f3085..6c5590fa9c 100644 --- a/e2e/tests-dfx/ledger.bash +++ b/e2e/tests-dfx/ledger.bash @@ -3,246 +3,246 @@ load ../utils/_ setup() { - standard_setup - install_asset ledger - install_shared_asset subnet_type/shared_network_settings/system + standard_setup + install_asset ledger + install_shared_asset subnet_type/shared_network_settings/system - dfx identity import --storage-mode plaintext alice alice.pem - dfx identity import --storage-mode plaintext bob bob.pem + dfx identity import --storage-mode plaintext alice alice.pem + dfx identity import --storage-mode plaintext bob bob.pem - dfx_start_for_nns_install + dfx_start_for_nns_install - dfx extension install nns || true - dfx nns install --ledger-accounts 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc + dfx extension install nns || true + dfx nns install --ledger-accounts 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } current_time_nanoseconds() { - echo "$(date +%s)"000000000 + echo "$(date +%s)"000000000 } @test "ledger account-id" { - dfx identity use alice - assert_command dfx ledger account-id - assert_match 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 + dfx identity use alice + assert_command dfx ledger account-id + assert_match 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 - assert_command dfx ledger account-id --of-principal fg7gi-vyaaa-aaaal-qadca-cai - assert_match a014842f64a22e59887162a79c7ca7eb02553250704780ec4d954f12d0ea0b18 + assert_command dfx ledger account-id --of-principal fg7gi-vyaaa-aaaal-qadca-cai + assert_match a014842f64a22e59887162a79c7ca7eb02553250704780ec4d954f12d0ea0b18 - # --of-canister accepts both canister alias and canister principal - assert_command dfx canister create dummy_canister - assert_command dfx ledger account-id --of-canister "$(dfx canister id dummy_canister)" - assert_eq "$(dfx ledger account-id --of-canister dummy_canister)" + # --of-canister accepts both canister alias and canister principal + assert_command dfx canister create dummy_canister + assert_command dfx ledger account-id --of-canister "$(dfx canister id dummy_canister)" + assert_eq "$(dfx ledger account-id --of-canister dummy_canister)" } @test "ledger balance & transfer" { - dfx identity use alice - assert_command dfx ledger account-id - assert_match 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 - - assert_command dfx ledger balance - assert_match "1000000000.00000000 ICP" - - assert_command dfx ledger transfer --amount 100 --memo 1 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 # to bob - assert_match "Transfer sent at block height" - - # The sender(alice) paid transaction fee which is 0.0001 ICP - assert_command dfx ledger balance - assert_match "999999899.99990000 ICP" - - dfx identity use bob - assert_command dfx ledger account-id - assert_match 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 - - assert_command dfx ledger balance - assert_match "1000000100.00000000 ICP" - - assert_command dfx ledger transfer --icp 100 --e8s 1 --memo 2 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 # to alice - assert_match "Transfer sent at block height" - - # The sender(bob) paid transaction fee which is 0.0001 ICP - # 10100 - 100 - 0.0001 - 0.00000001 = 9999.99989999 - assert_command dfx ledger balance - assert_match "999999999.99989999 ICP" - - # Transaction Deduplication - t=$(current_time_nanoseconds) - - assert_command dfx ledger transfer --icp 1 --memo 1 --created-at-time "$t" 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 - # shellcheck disable=SC2154 - block_height=$(echo "$stdout" | sed '1q' | sed 's/Transfer sent at block height //') - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height $block_height" "$stdout" - - assert_command dfx ledger transfer --icp 1 --memo 1 --created-at-time $((t+1)) 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Transfer sent at block height $block_height" "$stdout" - - assert_command dfx ledger transfer --icp 1 --memo 1 --created-at-time "$t" 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 - # shellcheck disable=SC2154 - assert_match "transaction is a duplicate of another transaction in block $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height $block_height" "$stdout" - - assert_command dfx ledger transfer --icp 1 --memo 2 --created-at-time "$t" 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Transfer sent at block height $block_height" "$stdout" + dfx identity use alice + assert_command dfx ledger account-id + assert_match 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 + + assert_command dfx ledger balance + assert_match "1000000000.00000000 ICP" + + assert_command dfx ledger transfer --amount 100 --memo 1 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 # to bob + assert_match "Transfer sent at block height" + + # The sender(alice) paid transaction fee which is 0.0001 ICP + assert_command dfx ledger balance + assert_match "999999899.99990000 ICP" + + dfx identity use bob + assert_command dfx ledger account-id + assert_match 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 + + assert_command dfx ledger balance + assert_match "1000000100.00000000 ICP" + + assert_command dfx ledger transfer --icp 100 --e8s 1 --memo 2 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 # to alice + assert_match "Transfer sent at block height" + + # The sender(bob) paid transaction fee which is 0.0001 ICP + # 10100 - 100 - 0.0001 - 0.00000001 = 9999.99989999 + assert_command dfx ledger balance + assert_match "999999999.99989999 ICP" + + # Transaction Deduplication + t=$(current_time_nanoseconds) + + assert_command dfx ledger transfer --icp 1 --memo 1 --created-at-time "$t" 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 + # shellcheck disable=SC2154 + block_height=$(echo "$stdout" | sed '1q' | sed 's/Transfer sent at block height //') + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height $block_height" "$stdout" + + assert_command dfx ledger transfer --icp 1 --memo 1 --created-at-time $((t+1)) 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Transfer sent at block height $block_height" "$stdout" + + assert_command dfx ledger transfer --icp 1 --memo 1 --created-at-time "$t" 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 + # shellcheck disable=SC2154 + assert_match "transaction is a duplicate of another transaction in block $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height $block_height" "$stdout" + + assert_command dfx ledger transfer --icp 1 --memo 2 --created-at-time "$t" 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Transfer sent at block height $block_height" "$stdout" } @test "ledger subaccounts" { - subacct=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f - assert_command dfx ledger account-id --identity bob --subaccount "$subacct" - assert_match 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc - - dfx identity use alice - assert_command dfx ledger balance - assert_match "1000000000.00000000 ICP" - assert_command dfx ledger transfer --amount 100 --memo 1 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc # to bob+subacct - assert_match "Transfer sent at block height" - assert_command dfx ledger balance - assert_match "999999899.99990000 ICP" - - dfx identity use bob - assert_command dfx ledger balance - assert_match "1000000000.00000000 ICP" - assert_command dfx ledger balance --subaccount "$subacct" - assert_match "1000000100.00000000 ICP" - - assert_command dfx ledger transfer --amount 100 --memo 2 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 --from-subaccount "$subacct" # to alice - assert_match "Transfer sent at block height" - assert_command dfx ledger balance - assert_match "1000000000.00000000 ICP" - assert_command dfx ledger balance --subaccount "$subacct" - assert_match "999999999.99990000 ICP" - assert_command dfx ledger balance --identity alice - assert_match "999999999.99990000 ICP" + subacct=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f + assert_command dfx ledger account-id --identity bob --subaccount "$subacct" + assert_match 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc + + dfx identity use alice + assert_command dfx ledger balance + assert_match "1000000000.00000000 ICP" + assert_command dfx ledger transfer --amount 100 --memo 1 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc # to bob+subacct + assert_match "Transfer sent at block height" + assert_command dfx ledger balance + assert_match "999999899.99990000 ICP" + + dfx identity use bob + assert_command dfx ledger balance + assert_match "1000000000.00000000 ICP" + assert_command dfx ledger balance --subaccount "$subacct" + assert_match "1000000100.00000000 ICP" + + assert_command dfx ledger transfer --amount 100 --memo 2 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 --from-subaccount "$subacct" # to alice + assert_match "Transfer sent at block height" + assert_command dfx ledger balance + assert_match "1000000000.00000000 ICP" + assert_command dfx ledger balance --subaccount "$subacct" + assert_match "999999999.99990000 ICP" + assert_command dfx ledger balance --identity alice + assert_match "999999999.99990000 ICP" } tc_to_num() { - if [[ $1 =~ T ]]; then - echo "${1%%[^0-9]*}000000000000" - else - echo "${1%%[^0-9]*}" - fi + if [[ $1 =~ T ]]; then + echo "${1%%[^0-9]*}000000000000" + else + echo "${1%%[^0-9]*}" + fi } @test "ledger top-up" { - dfx identity use alice - assert_command dfx ledger balance - assert_match "1000000000.00000000 ICP" - - wallet=$(dfx identity get-wallet) - balance=$(tc_to_num "$(dfx wallet balance)") - - assert_command dfx ledger top-up "$wallet" --icp 5 - assert_match "Canister was topped up with 617283500000000 cycles" - balance_now=$(tc_to_num "$(dfx wallet balance)") - - (( balance_now - balance > 600000000000000 )) - - # Transaction Deduplication - t=$(current_time_nanoseconds) - - assert_command dfx ledger top-up "$wallet" --icp 5 --created-at-time "$t" - - # shellcheck disable=SC2154 - block_height=$(echo "$stdout" | sed '1q' | sed 's/Transfer sent at block height //') - - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Using transfer at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Canister was topped up with" "$stdout" - - assert_command dfx ledger top-up "$wallet" --icp 5 --created-at-time $((t+1)) - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Using transfer at block height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Canister was topped up with" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Transfer sent at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Using transfer at block height $block_height" "$stdout" - - assert_command dfx ledger top-up "$wallet" --icp 5 --created-at-time "$t" - # shellcheck disable=SC2154 - assert_match "transaction is a duplicate of another transaction in block $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Using transfer at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Canister was topped up with" "$stdout" + dfx identity use alice + assert_command dfx ledger balance + assert_match "1000000000.00000000 ICP" + + wallet=$(dfx identity get-wallet) + balance=$(tc_to_num "$(dfx wallet balance)") + + assert_command dfx ledger top-up "$wallet" --icp 5 + assert_match "Canister was topped up with 617283500000000 cycles" + balance_now=$(tc_to_num "$(dfx wallet balance)") + + (( balance_now - balance > 600000000000000 )) + + # Transaction Deduplication + t=$(current_time_nanoseconds) + + assert_command dfx ledger top-up "$wallet" --icp 5 --created-at-time "$t" + + # shellcheck disable=SC2154 + block_height=$(echo "$stdout" | sed '1q' | sed 's/Transfer sent at block height //') + + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Using transfer at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Canister was topped up with" "$stdout" + + assert_command dfx ledger top-up "$wallet" --icp 5 --created-at-time $((t+1)) + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Using transfer at block height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Canister was topped up with" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Transfer sent at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Using transfer at block height $block_height" "$stdout" + + assert_command dfx ledger top-up "$wallet" --icp 5 --created-at-time "$t" + # shellcheck disable=SC2154 + assert_match "transaction is a duplicate of another transaction in block $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Using transfer at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Canister was topped up with" "$stdout" } @test "ledger create-canister" { - dfx identity use alice - assert_command dfx ledger create-canister --amount=100 --subnet-type "type1" "$(dfx identity get-principal)" - assert_match "Transfer sent at block height" - assert_match "Refunded at block height" - assert_match "with message: Provided subnet type type1 does not exist" - - # Transaction Deduplication - t=$(current_time_nanoseconds) - - assert_command dfx ledger create-canister --amount=100 --created-at-time "$t" "$(dfx identity get-principal)" - # shellcheck disable=SC2154 - block_height=$(echo "$stdout" | sed '1q' | sed 's/Transfer sent at block height //') - # shellcheck disable=SC2154 - created_canister_id=$(echo "$stdout" | sed '3q;d' | sed 's/Canister created with id: //') - - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Using transfer at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Canister created with id: $created_canister_id" "$stdout" - - assert_command dfx ledger create-canister --amount=100 --created-at-time $((t+1)) "$(dfx identity get-principal)" - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Using transfer at block height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Canister created with id:" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Transfer sent at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Using transfer at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_not_match "Canister created with id: $created_canister_id" "$stdout" - - assert_command dfx ledger create-canister --amount=100 --created-at-time "$t" "$(dfx identity get-principal)" - # shellcheck disable=SC2154 - assert_match "transaction is a duplicate of another transaction in block $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Transfer sent at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Using transfer at block height $block_height" "$stdout" - # shellcheck disable=SC2154 - assert_match "Canister created with id: $created_canister_id" "$stdout" - + dfx identity use alice + assert_command dfx ledger create-canister --amount=100 --subnet-type "type1" "$(dfx identity get-principal)" + assert_match "Transfer sent at block height" + assert_match "Refunded at block height" + assert_match "with message: Provided subnet type type1 does not exist" + + # Transaction Deduplication + t=$(current_time_nanoseconds) + + assert_command dfx ledger create-canister --amount=100 --created-at-time "$t" "$(dfx identity get-principal)" + # shellcheck disable=SC2154 + block_height=$(echo "$stdout" | sed '1q' | sed 's/Transfer sent at block height //') + # shellcheck disable=SC2154 + created_canister_id=$(echo "$stdout" | sed '3q;d' | sed 's/Canister created with id: //') + + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Using transfer at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Canister created with id: $created_canister_id" "$stdout" + + assert_command dfx ledger create-canister --amount=100 --created-at-time $((t+1)) "$(dfx identity get-principal)" + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Using transfer at block height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Canister created with id:" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Transfer sent at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Using transfer at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_not_match "Canister created with id: $created_canister_id" "$stdout" + + assert_command dfx ledger create-canister --amount=100 --created-at-time "$t" "$(dfx identity get-principal)" + # shellcheck disable=SC2154 + assert_match "transaction is a duplicate of another transaction in block $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Transfer sent at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Using transfer at block height $block_height" "$stdout" + # shellcheck disable=SC2154 + assert_match "Canister created with id: $created_canister_id" "$stdout" + } @test "ledger show-subnet-types" { - install_asset cmc + install_asset cmc - dfx deploy cmc + dfx deploy cmc - CANISTER_ID=$(dfx canister id cmc) + CANISTER_ID=$(dfx canister id cmc) - assert_command dfx ledger show-subnet-types --cycles-minting-canister-id "$CANISTER_ID" - assert_eq '["type1", "type2"]' + assert_command dfx ledger show-subnet-types --cycles-minting-canister-id "$CANISTER_ID" + assert_eq '["type1", "type2"]' } diff --git a/e2e/tests-dfx/metadata.bash b/e2e/tests-dfx/metadata.bash index ddd34841c7..9790de9178 100644 --- a/e2e/tests-dfx/metadata.bash +++ b/e2e/tests-dfx/metadata.bash @@ -3,148 +3,148 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "custom canister metadata rules" { - install_asset metadata/custom - install_asset wasm/identity + install_asset metadata/custom + install_asset wasm/identity - dfx_start - dfx deploy + dfx_start + dfx deploy - echo "leaves existing metadata in a custom canister with no metadata settings" - dfx canister metadata --identity anonymous custom_with_default_metadata candid:service >metadata.txt - diff main.did metadata.txt + echo "leaves existing metadata in a custom canister with no metadata settings" + dfx canister metadata --identity anonymous custom_with_default_metadata candid:service >metadata.txt + diff main.did metadata.txt - echo "adds candid:service public metadata from candid field if a metadata entry exists" - dfx canister metadata --identity anonymous custom_with_standard_candid_service_metadata candid:service >metadata.txt - diff custom_with_standard_candid_service_metadata.did metadata.txt + echo "adds candid:service public metadata from candid field if a metadata entry exists" + dfx canister metadata --identity anonymous custom_with_standard_candid_service_metadata candid:service >metadata.txt + diff custom_with_standard_candid_service_metadata.did metadata.txt - echo "adds candid:service metadata from candid field with private visibility per metadata entry" - assert_command_fail dfx canister metadata --identity anonymous custom_with_private_candid_service_metadata candid:service >metadata.txt - dfx canister metadata custom_with_private_candid_service_metadata candid:service >metadata.txt - diff custom_with_private_candid_service_metadata.did metadata.txt + echo "adds candid:service metadata from candid field with private visibility per metadata entry" + assert_command_fail dfx canister metadata --identity anonymous custom_with_private_candid_service_metadata candid:service >metadata.txt + dfx canister metadata custom_with_private_candid_service_metadata candid:service >metadata.txt + diff custom_with_private_candid_service_metadata.did metadata.txt } @test "rust canister metadata rules" { - rustup default stable - rustup target add wasm32-unknown-unknown + rustup default stable + rustup target add wasm32-unknown-unknown - dfx_new_rust + dfx_new_rust - dfx_start - dfx deploy + dfx_start + dfx deploy - echo "adds public candid:service metadata to a default rust canister" - dfx canister metadata --identity anonymous e2e_project_backend candid:service >metadata.txt - diff src/e2e_project_backend/e2e_project_backend.did metadata.txt + echo "adds public candid:service metadata to a default rust canister" + dfx canister metadata --identity anonymous e2e_project_backend candid:service >metadata.txt + diff src/e2e_project_backend/e2e_project_backend.did metadata.txt - echo "adds private candid:service metadata if so configured" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].visibility="private"' dfx.json | sponge dfx.json - dfx deploy - assert_command_fail dfx canister metadata --identity anonymous e2e_project_backend candid:service - dfx canister metadata e2e_project_backend candid:service >metadata.txt - diff src/e2e_project_backend/e2e_project_backend.did metadata.txt + echo "adds private candid:service metadata if so configured" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].visibility="private"' dfx.json | sponge dfx.json + dfx deploy + assert_command_fail dfx canister metadata --identity anonymous e2e_project_backend candid:service + dfx canister metadata e2e_project_backend candid:service >metadata.txt + diff src/e2e_project_backend/e2e_project_backend.did metadata.txt } @test "motoko canister metadata rules" { - dfx_new - dfx_start - install_asset metadata/motoko - dfx canister create --all - - echo "permits specification of a replacement candid definition, if it is a valid subtype" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - assert_command dfx build - find . -name '*.did' - jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].path="valid_subtype.did"' dfx.json | sponge dfx.json - dfx build - - echo "reports an error if a specified candid:service metadata is not a valid subtype for the canister" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].path="not_subtype_rename.did"' dfx.json | sponge dfx.json - assert_command_fail dfx build - assert_match "Method new_method is only in the expected type" - - echo "reports an error if a specified candid:service metadata is not a valid subtype for the canister" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].path="not_subtype_numbertype.did"' dfx.json | sponge dfx.json - assert_command_fail dfx build - assert_match "int is not a subtype of nat" - - - echo "adds private candid:service metadata if so configured" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].visibility="private"' dfx.json | sponge dfx.json - dfx deploy - assert_command_fail dfx canister metadata --identity anonymous e2e_project_backend candid:service - dfx canister metadata e2e_project_backend candid:service >metadata.txt - diff .dfx/local/canisters/e2e_project_backend/e2e_project_backend.did metadata.txt - - - echo "adds public candid:service metadata to a default motoko canister" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - dfx deploy - dfx canister metadata --identity anonymous e2e_project_backend candid:service >metadata.txt - diff .dfx/local/canisters/e2e_project_backend/e2e_project_backend.did metadata.txt + dfx_new + dfx_start + install_asset metadata/motoko + dfx canister create --all + + echo "permits specification of a replacement candid definition, if it is a valid subtype" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + assert_command dfx build + find . -name '*.did' + jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].path="valid_subtype.did"' dfx.json | sponge dfx.json + dfx build + + echo "reports an error if a specified candid:service metadata is not a valid subtype for the canister" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].path="not_subtype_rename.did"' dfx.json | sponge dfx.json + assert_command_fail dfx build + assert_match "Method new_method is only in the expected type" + + echo "reports an error if a specified candid:service metadata is not a valid subtype for the canister" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].path="not_subtype_numbertype.did"' dfx.json | sponge dfx.json + assert_command_fail dfx build + assert_match "int is not a subtype of nat" + + + echo "adds private candid:service metadata if so configured" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[0].name="candid:service"|.canisters.e2e_project_backend.metadata[0].visibility="private"' dfx.json | sponge dfx.json + dfx deploy + assert_command_fail dfx canister metadata --identity anonymous e2e_project_backend candid:service + dfx canister metadata e2e_project_backend candid:service >metadata.txt + diff .dfx/local/canisters/e2e_project_backend/e2e_project_backend.did metadata.txt + + + echo "adds public candid:service metadata to a default motoko canister" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + dfx deploy + dfx canister metadata --identity anonymous e2e_project_backend candid:service >metadata.txt + diff .dfx/local/canisters/e2e_project_backend/e2e_project_backend.did metadata.txt } @test "adds arbitrary metadata to a motoko canister" { - dfx_new - dfx_start - install_asset metadata/motoko - dfx canister create --all - - echo "adds public arbitrary metadata to a default motoko canister" - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[0].name="arbitrary"|.canisters.e2e_project_backend.metadata[0].path="arbitrary-metadata.txt"' dfx.json | sponge dfx.json - echo "can be anything" >arbitrary-metadata.txt - dfx deploy - dfx canister metadata --identity anonymous e2e_project_backend arbitrary >from-canister.txt - diff arbitrary-metadata.txt from-canister.txt - - # with private visibility - jq '.canisters.e2e_project_backend.metadata[0].visibility="private"' dfx.json | sponge dfx.json - dfx deploy - assert_command_fail dfx canister metadata --identity anonymous e2e_project_backend arbitrary - dfx canister metadata e2e_project_backend arbitrary >from-canister.txt - diff arbitrary-metadata.txt from-canister.txt + dfx_new + dfx_start + install_asset metadata/motoko + dfx canister create --all + + echo "adds public arbitrary metadata to a default motoko canister" + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[0].name="arbitrary"|.canisters.e2e_project_backend.metadata[0].path="arbitrary-metadata.txt"' dfx.json | sponge dfx.json + echo "can be anything" >arbitrary-metadata.txt + dfx deploy + dfx canister metadata --identity anonymous e2e_project_backend arbitrary >from-canister.txt + diff arbitrary-metadata.txt from-canister.txt + + # with private visibility + jq '.canisters.e2e_project_backend.metadata[0].visibility="private"' dfx.json | sponge dfx.json + dfx deploy + assert_command_fail dfx canister metadata --identity anonymous e2e_project_backend arbitrary + dfx canister metadata e2e_project_backend arbitrary >from-canister.txt + diff arbitrary-metadata.txt from-canister.txt } @test "uses the first metadata definition for name and network" { - dfx_new - dfx_start - install_asset metadata/motoko - dfx canister create --all - - jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[0].name="multiple"|.canisters.e2e_project_backend.metadata[0].path="empty-networks-matches-nothing.txt"|.canisters.e2e_project_backend.metadata[0].networks=[]' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[1].name="multiple"|.canisters.e2e_project_backend.metadata[1].path="different-network-no-match.txt"|.canisters.e2e_project_backend.metadata[1].networks=["ic"]' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[2].name="multiple"|.canisters.e2e_project_backend.metadata[2].path="first-match-chosen.txt"' dfx.json | sponge dfx.json - jq '.canisters.e2e_project_backend.metadata[3].name="multiple"|.canisters.e2e_project_backend.metadata[3].path="earlier-match-ignored.txt"' dfx.json | sponge dfx.json - echo "dfx will install this file" >first-match-chosen.txt - dfx deploy - dfx canister metadata --identity anonymous e2e_project_backend multiple >from-canister.txt - diff first-match-chosen.txt from-canister.txt + dfx_new + dfx_start + install_asset metadata/motoko + dfx canister create --all + + jq 'del(.canisters.e2e_project_backend.metadata)' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[0].name="multiple"|.canisters.e2e_project_backend.metadata[0].path="empty-networks-matches-nothing.txt"|.canisters.e2e_project_backend.metadata[0].networks=[]' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[1].name="multiple"|.canisters.e2e_project_backend.metadata[1].path="different-network-no-match.txt"|.canisters.e2e_project_backend.metadata[1].networks=["ic"]' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[2].name="multiple"|.canisters.e2e_project_backend.metadata[2].path="first-match-chosen.txt"' dfx.json | sponge dfx.json + jq '.canisters.e2e_project_backend.metadata[3].name="multiple"|.canisters.e2e_project_backend.metadata[3].path="earlier-match-ignored.txt"' dfx.json | sponge dfx.json + echo "dfx will install this file" >first-match-chosen.txt + dfx deploy + dfx canister metadata --identity anonymous e2e_project_backend multiple >from-canister.txt + diff first-match-chosen.txt from-canister.txt } @test "can add metadata to a compressed canister" { - dfx_start - install_asset gzip - install_asset wasm/identity - jq '.canisters.gzipped.metadata[0].name="arbitrary"|.canisters.gzipped.metadata[0].content="arbitrary content"' dfx.json | sponge dfx.json - - assert_command dfx deploy - assert_command dfx canister metadata gzipped arbitrary - assert_eq "$output" "arbitrary content" + dfx_start + install_asset gzip + install_asset wasm/identity + jq '.canisters.gzipped.metadata[0].name="arbitrary"|.canisters.gzipped.metadata[0].content="arbitrary content"' dfx.json | sponge dfx.json + + assert_command dfx deploy + assert_command dfx canister metadata gzipped arbitrary + assert_eq "$output" "arbitrary content" } @test "existence of build steps do not control custom canister metadata" { @@ -172,22 +172,22 @@ teardown() { } @test "can read canister metadata from replica" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - assert_command dfx deploy + assert_command dfx deploy - dfx canister metadata hello_backend candid:service >metadata.txt - assert_command diff .dfx/local/canisters/hello_backend/hello_backend.did ./metadata.txt + dfx canister metadata hello_backend candid:service >metadata.txt + assert_command diff .dfx/local/canisters/hello_backend/hello_backend.did ./metadata.txt } @test "asset canister provides candid:service metadata" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - assert_command dfx deploy - REPO_ROOT=${BATS_TEST_DIRNAME}/../../ + assert_command dfx deploy + REPO_ROOT=${BATS_TEST_DIRNAME}/../../ - dfx canister metadata hello_frontend candid:service >candid_service_metadata.txt - assert_command diff "$REPO_ROOT/src/distributed/assetstorage.did" ./candid_service_metadata.txt + dfx canister metadata hello_frontend candid:service >candid_service_metadata.txt + assert_command diff "$REPO_ROOT/src/distributed/assetstorage.did" ./candid_service_metadata.txt } diff --git a/e2e/tests-dfx/migrate.bash b/e2e/tests-dfx/migrate.bash index 9ae48eed8a..b2e330d61a 100644 --- a/e2e/tests-dfx/migrate.bash +++ b/e2e/tests-dfx/migrate.bash @@ -3,36 +3,36 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "detects the wallet being outdated" { - use_wallet_wasm 0.7.2 - dfx_start - WALLET=$(dfx identity get-wallet) - use_wallet_wasm 0.10.0 - assert_command dfx diagnose - assert_match "dfx wallet upgrade" - assert_command_fail dfx canister call "$WALLET" wallet_balance128 - assert_command dfx fix - assert_command dfx canister call "$WALLET" wallet_balance128 + use_wallet_wasm 0.7.2 + dfx_start + WALLET=$(dfx identity get-wallet) + use_wallet_wasm 0.10.0 + assert_command dfx diagnose + assert_match "dfx wallet upgrade" + assert_command_fail dfx canister call "$WALLET" wallet_balance128 + assert_command dfx fix + assert_command dfx canister call "$WALLET" wallet_balance128 } @test "detects the wallet being the sole controller" { - dfx_start - dfx canister create e2e_project_backend --controller "$(dfx identity get-wallet)" --no-wallet - dfx build e2e_project_backend - assert_command dfx diagnose - assert_match "dfx canister update-settings" - assert_command_fail dfx canister install e2e_project_backend - assert_command dfx fix - assert_command dfx canister install e2e_project_backend + dfx_start + dfx canister create e2e_project_backend --controller "$(dfx identity get-wallet)" --no-wallet + dfx build e2e_project_backend + assert_command dfx diagnose + assert_match "dfx canister update-settings" + assert_command_fail dfx canister install e2e_project_backend + assert_command dfx fix + assert_command dfx canister install e2e_project_backend } diff --git a/e2e/tests-dfx/mode_reinstall.bash b/e2e/tests-dfx/mode_reinstall.bash index 78a68720b9..a21e4bdd5d 100644 --- a/e2e/tests-dfx/mode_reinstall.bash +++ b/e2e/tests-dfx/mode_reinstall.bash @@ -3,160 +3,160 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "install --mode=reinstall --all fails" { - dfx_start - assert_command_fail dfx canister install --mode=reinstall --all + dfx_start + assert_command_fail dfx canister install --mode=reinstall --all - assert_match "The --mode=reinstall is only valid when specifying a single canister, because reinstallation destroys all data in the canister." + assert_match "The --mode=reinstall is only valid when specifying a single canister, because reinstallation destroys all data in the canister." } @test "install --mode=reinstall fails if no canister is provided" { - # This fails because clap protects against it. + # This fails because clap protects against it. - dfx_start - assert_command_fail dfx canister install --mode=reinstall - assert_match \ + dfx_start + assert_command_fail dfx canister install --mode=reinstall + assert_match \ "error: the following required arguments were not provided: --all" } @test "reinstall succeeds when a canister name is provided" { - dfx_start - dfx deploy + dfx_start + dfx deploy - # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, - # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 - echo yes | ( - assert_command dfx canister install --mode=reinstall hello_backend + # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, + # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 + echo yes | ( + assert_command dfx canister install --mode=reinstall hello_backend - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_backend" - ) + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_backend" + ) } @test "install --mode=reinstall refused if not approved" { - dfx_start - dfx deploy + dfx_start + dfx deploy - echo no | ( - assert_command_fail dfx canister install --mode=reinstall hello_backend + echo no | ( + assert_command_fail dfx canister install --mode=reinstall hello_backend - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_not_match "Installing code for canister" - assert_match "Refusing to install canister without approval: User declined consent." - ) + assert_not_match "Installing code for canister" + assert_match "Refusing to install canister without approval: User declined consent." + ) } @test "deploy --mode=reinstall fails if no canister name specified" { - dfx_start - assert_command_fail dfx deploy --mode=reinstall + dfx_start + assert_command_fail dfx deploy --mode=reinstall - assert_match "The --mode=reinstall is only valid when deploying a single canister, because reinstallation destroys all data in the canister." + assert_match "The --mode=reinstall is only valid when deploying a single canister, because reinstallation destroys all data in the canister." } @test "deploy --mode=reinstall succeeds when a canister name is provided" { - dfx_start - dfx deploy + dfx_start + dfx deploy - # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, - # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 - echo yes | ( - assert_command dfx deploy --mode=reinstall hello_backend + # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, + # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 + echo yes | ( + assert_command dfx deploy --mode=reinstall hello_backend - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_backend" - ) + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_backend" + ) } @test "deploy --mode=reinstall refused if not approved" { - dfx_start - dfx deploy + dfx_start + dfx deploy - echo no | ( - assert_command_fail dfx deploy --mode=reinstall hello_backend + echo no | ( + assert_command_fail dfx deploy --mode=reinstall hello_backend - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_not_match "Installing code for canister" - assert_match "Refusing to install canister without approval: User declined consent." - ) + assert_not_match "Installing code for canister" + assert_match "Refusing to install canister without approval: User declined consent." + ) } @test "deploy --mode=reinstall does not reinstall dependencies" { - dfx_start - install_asset counter - dfx deploy + dfx_start + install_asset counter + dfx deploy - assert_command dfx canister call hello_backend read - assert_eq "(0 : nat)" + assert_command dfx canister call hello_backend read + assert_eq "(0 : nat)" - assert_command dfx canister call hello_backend inc - assert_eq "()" + assert_command dfx canister call hello_backend inc + assert_eq "()" - assert_command dfx canister call hello_backend read - assert_eq "(1 : nat)" + assert_command dfx canister call hello_backend read + assert_eq "(1 : nat)" - dfx canister call hello_backend inc - assert_command dfx canister call hello_backend read - assert_eq "(2 : nat)" + dfx canister call hello_backend inc + assert_command dfx canister call hello_backend read + assert_eq "(2 : nat)" - # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, - # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 - echo "yes" | ( - assert_command dfx deploy --mode=reinstall hello_frontend + # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, + # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 + echo "yes" | ( + assert_command dfx deploy --mode=reinstall hello_frontend - assert_match "You are about to reinstall the hello_frontend canister." - assert_not_match "You are about to reinstall the hello_backend canister." - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_frontend," - ) + assert_match "You are about to reinstall the hello_frontend canister." + assert_not_match "You are about to reinstall the hello_backend canister." + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_frontend," + ) - # the hello_backend canister should not have been upgraded (which would reset the non-stable var) - assert_command dfx canister call hello_backend read - assert_eq "(2 : nat)" + # the hello_backend canister should not have been upgraded (which would reset the non-stable var) + assert_command dfx canister call hello_backend read + assert_eq "(2 : nat)" } @test "confirmation dialogue accepts multiple forms of 'yes'" { - dfx_start - dfx deploy - - # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, - # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 - echo yes | ( - assert_command dfx deploy --mode=reinstall hello_backend - - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_backend" - ) - echo y | ( - assert_command dfx deploy --mode=reinstall hello_backend - - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_backend" - ) - echo YES | ( - assert_command dfx deploy --mode=reinstall hello_backend - - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_backend" - ) - echo YeS | ( - assert_command dfx deploy --mode=reinstall hello_backend - - assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" - assert_match "Reinstalling code for canister hello_backend" - ) + dfx_start + dfx deploy + + # if the pipe is alone with assert_command, $stdout, $stderr etc will not be available, + # so all the assert_match calls will fail. http://mywiki.wooledge.org/BashFAQ/024 + echo yes | ( + assert_command dfx deploy --mode=reinstall hello_backend + + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_backend" + ) + echo y | ( + assert_command dfx deploy --mode=reinstall hello_backend + + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_backend" + ) + echo YES | ( + assert_command dfx deploy --mode=reinstall hello_backend + + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_backend" + ) + echo YeS | ( + assert_command dfx deploy --mode=reinstall hello_backend + + assert_match "YOU WILL LOSE ALL DATA IN THE CANISTER" + assert_match "Reinstalling code for canister hello_backend" + ) } diff --git a/e2e/tests-dfx/network.bash b/e2e/tests-dfx/network.bash index b2a39982db..dcb12ac8da 100644 --- a/e2e/tests-dfx/network.bash +++ b/e2e/tests-dfx/network.bash @@ -3,111 +3,111 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx identity new --storage-mode plaintext test_id - dfx identity use test_id - dfx_new + dfx identity new --storage-mode plaintext test_id + dfx identity use test_id + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "create with wallet stores canister ids for default-persistent networks in canister_ids.json" { - dfx_start - setup_actuallylocal_shared_network - dfx_set_wallet - dfx_set_wallet + dfx_start + setup_actuallylocal_shared_network + dfx_set_wallet + dfx_set_wallet - dfx canister create --all --network actuallylocal + dfx canister create --all --network actuallylocal - # canister creates writes to a spinner (stderr), not stdout - assert_command dfx canister id e2e_project_backend --network actuallylocal - assert_match "$(jq -r .e2e_project_backend.actuallylocal ` - assert_command_fail dfx canister id hello_backend --network playground - assert_contains "Cannot find canister id" + # if network is unknown dfx fails with `Network not found: ` + assert_command_fail dfx canister id hello_backend --network playground + assert_contains "Cannot find canister id" } @test "equivalent: --network ic and --ic" { - dfx_start - dfx identity get-wallet - - assert_command_fail dfx diagnose --network ic - assert_contains "The test_id identity is not stored securely." - assert_contains "use it in mainnet-facing commands" - assert_contains "No wallet found; nothing to do" - - assert_command_fail dfx diagnose --ic - assert_contains "The test_id identity is not stored securely." - assert_contains "use it in mainnet-facing commands" - assert_contains "No wallet found; nothing to do" - - assert_command dfx diagnose - assert_not_contains "identity is not stored securely" - assert_eq "No problems found" + dfx_start + dfx identity get-wallet + + assert_command_fail dfx diagnose --network ic + assert_contains "The test_id identity is not stored securely." + assert_contains "use it in mainnet-facing commands" + assert_contains "No wallet found; nothing to do" + + assert_command_fail dfx diagnose --ic + assert_contains "The test_id identity is not stored securely." + assert_contains "use it in mainnet-facing commands" + assert_contains "No wallet found; nothing to do" + + assert_command dfx diagnose + assert_not_contains "identity is not stored securely" + assert_eq "No problems found" } diff --git a/e2e/tests-dfx/new.bash b/e2e/tests-dfx/new.bash index 731d1dbaf0..6559b2d5b6 100644 --- a/e2e/tests-dfx/new.bash +++ b/e2e/tests-dfx/new.bash @@ -3,57 +3,57 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - standard_teardown + standard_teardown } @test "dfx new - good names" { - dfx new --no-frontend a_good_name_ - dfx new --no-frontend A - dfx new --no-frontend b - dfx new --no-frontend a_ - dfx new --no-frontend a_1 - dfx new --no-frontend a1 - dfx new --no-frontend a1a + dfx new --no-frontend a_good_name_ + dfx new --no-frontend A + dfx new --no-frontend b + dfx new --no-frontend a_ + dfx new --no-frontend a_1 + dfx new --no-frontend a1 + dfx new --no-frontend a1a } @test "dfx new - bad names" { - assert_command_fail dfx new _a_good_name_ - assert_command_fail dfx new __also_good - assert_command_fail dfx new _1 - assert_command_fail dfx new _a - assert_command_fail dfx new 1 - assert_command_fail dfx new 1_ - assert_command_fail dfx new - - assert_command_fail dfx new _ - assert_command_fail dfx new a-b-c - assert_command_fail dfx new '🕹' - assert_command_fail dfx new '不好' - assert_command_fail dfx new 'a:b' + assert_command_fail dfx new _a_good_name_ + assert_command_fail dfx new __also_good + assert_command_fail dfx new _1 + assert_command_fail dfx new _a + assert_command_fail dfx new 1 + assert_command_fail dfx new 1_ + assert_command_fail dfx new - + assert_command_fail dfx new _ + assert_command_fail dfx new a-b-c + assert_command_fail dfx new '🕹' + assert_command_fail dfx new '不好' + assert_command_fail dfx new 'a:b' } @test "dfx new readmes contain appropriate links" { - assert_command dfx new --type rust e2e_rust --no-frontend - assert_command grep "https://docs.rs/ic-cdk" e2e_rust/README.md - assert_command dfx new --type motoko e2e_motoko --no-frontend - assert_command grep "https://internetcomputer.org/docs/current/motoko/main/language-manual" e2e_motoko/README.md + assert_command dfx new --type rust e2e_rust --no-frontend + assert_command grep "https://docs.rs/ic-cdk" e2e_rust/README.md + assert_command dfx new --type motoko e2e_motoko --no-frontend + assert_command grep "https://internetcomputer.org/docs/current/motoko/main/language-manual" e2e_motoko/README.md } @test "dfx new emits projects of the correct type" { - assert_command dfx new --type rust e2e_rust --no-frontend - assert_command jq -r '.canisters.e2e_rust_backend.type' e2e_rust/dfx.json - assert_eq "rust" - assert_command dfx new --type motoko e2e_motoko --no-frontend - assert_command jq -r '.canisters.e2e_motoko_backend.type' e2e_motoko/dfx.json - assert_eq "motoko" + assert_command dfx new --type rust e2e_rust --no-frontend + assert_command jq -r '.canisters.e2e_rust_backend.type' e2e_rust/dfx.json + assert_eq "rust" + assert_command dfx new --type motoko e2e_motoko --no-frontend + assert_command jq -r '.canisters.e2e_motoko_backend.type' e2e_motoko/dfx.json + assert_eq "motoko" } @test "dfx new always emits sample-asset.txt" { - assert_command dfx new e2e_frontend --frontend - assert_file_exists e2e_frontend/src/e2e_frontend_frontend/assets/sample-asset.txt - assert_command dfx new e2e_no_frontend --no-frontend - assert_file_exists e2e_no_frontend/src/e2e_no_frontend_frontend/assets/sample-asset.txt + assert_command dfx new e2e_frontend --frontend + assert_file_exists e2e_frontend/src/e2e_frontend_frontend/assets/sample-asset.txt + assert_command dfx new e2e_no_frontend --no-frontend + assert_file_exists e2e_no_frontend/src/e2e_no_frontend_frontend/assets/sample-asset.txt } diff --git a/e2e/tests-dfx/packtool.bash b/e2e/tests-dfx/packtool.bash index a3109b50a9..8f28b789f7 100644 --- a/e2e/tests-dfx/packtool.bash +++ b/e2e/tests-dfx/packtool.bash @@ -3,73 +3,73 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "build fails if packtool is not configured" { - install_asset packtool + install_asset packtool - dfx_start - dfx canister create --all - assert_command_fail dfx build - assert_match 'import error \[M0010\], package "(rate|describe)" not defined' + dfx_start + dfx canister create --all + assert_command_fail dfx build + assert_match 'import error \[M0010\], package "(rate|describe)" not defined' } @test "build succeeds if packtool is configured" { - install_asset packtool - # shellcheck disable=SC1091 - source configure_packtool.bash + install_asset packtool + # shellcheck disable=SC1091 + source configure_packtool.bash - dfx_start - dfx canister create --all - dfx build + dfx_start + dfx canister create --all + dfx build } @test "project calls dependencies made available by packtool" { - install_asset packtool - # shellcheck disable=SC1091 - source configure_packtool.bash + install_asset packtool + # shellcheck disable=SC1091 + source configure_packtool.bash - dfx_start - dfx canister create --all - dfx build - dfx canister install e2e_project_backend + dfx_start + dfx canister create --all + dfx build + dfx canister install e2e_project_backend - assert_command dfx canister call e2e_project_backend rate '("rust")' - assert_eq '("rust: So hot right now.")' + assert_command dfx canister call e2e_project_backend rate '("rust")' + assert_eq '("rust: So hot right now.")' - assert_command dfx canister call e2e_project_backend rate '("php")' - assert_eq '("php: No comment.")' + assert_command dfx canister call e2e_project_backend rate '("php")' + assert_eq '("php: No comment.")' } @test "failure to invoke the package tool reports the command line and reason" { - install_asset packtool - jq '.defaults.build.packtool="./no-such-command that command cannot be invoked"' dfx.json | sponge dfx.json - - dfx_start - dfx canister create --all - assert_command_fail dfx build - assert_match 'Failed to invoke the package tool' - assert_match 'no-such-command.*that.*command.*cannot.*be.*invoked' - assert_match 'No such file or directory \(os error 2\)' + install_asset packtool + jq '.defaults.build.packtool="./no-such-command that command cannot be invoked"' dfx.json | sponge dfx.json + + dfx_start + dfx canister create --all + assert_command_fail dfx build + assert_match 'Failed to invoke the package tool' + assert_match 'no-such-command.*that.*command.*cannot.*be.*invoked' + assert_match 'No such file or directory \(os error 2\)' } @test "failure in execution reports the command line and exit code" { - install_asset packtool - jq '.defaults.build.packtool="sh ./command-that-fails.bash"' dfx.json | sponge dfx.json - - dfx_start - dfx canister create --all - assert_command_fail dfx build - assert_match 'The command.*failed' - assert_match 'sh.*command-that-fails.bash' - assert_match 'exit (code|status): 3' + install_asset packtool + jq '.defaults.build.packtool="sh ./command-that-fails.bash"' dfx.json | sponge dfx.json + + dfx_start + dfx canister create --all + assert_command_fail dfx build + assert_match 'The command.*failed' + assert_match 'sh.*command-that-fails.bash' + assert_match 'exit (code|status): 3' } diff --git a/e2e/tests-dfx/ping.bash b/e2e/tests-dfx/ping.bash index 1e18a36914..8b7ecfb1b6 100644 --- a/e2e/tests-dfx/ping.bash +++ b/e2e/tests-dfx/ping.bash @@ -3,86 +3,86 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx ping fails if replica not running" { - assert_command_fail dfx ping + assert_command_fail dfx ping } @test "dfx ping succeeds if replica is running" { - dfx_start - assert_command dfx ping + dfx_start + assert_command dfx ping - assert_match "\"ic_api_version\"" + assert_match "\"ic_api_version\"" } @test "dfx ping succeeds by specific host:post" { - dfx_start - webserver_port=$(get_webserver_port) - assert_command dfx ping http://127.0.0.1:"$webserver_port" + dfx_start + webserver_port=$(get_webserver_port) + assert_command dfx ping http://127.0.0.1:"$webserver_port" - assert_match "\"ic_api_version\"" + assert_match "\"ic_api_version\"" } @test "dfx ping does not require dfx.json" { - dfx_start - webserver_port=$(get_webserver_port) + dfx_start + webserver_port=$(get_webserver_port) - mkdir "$E2E_TEMP_DIR/not-a-project" - ( - cd "$E2E_TEMP_DIR/not-a-project" + mkdir "$E2E_TEMP_DIR/not-a-project" + ( + cd "$E2E_TEMP_DIR/not-a-project" - assert_command dfx ping http://127.0.0.1:"$webserver_port" - assert_match "\"ic_api_version\"" - ) + assert_command dfx ping http://127.0.0.1:"$webserver_port" + assert_match "\"ic_api_version\"" + ) } @test "dfx ping succeeds by network name" { - dfx_start - assert_command dfx ping local + dfx_start + assert_command dfx ping local - assert_match "\"ic_api_version\"" + assert_match "\"ic_api_version\"" } @test "dfx ping succeeds by network name if network bind address is host:port format" { - dfx_start - webserver_port=$(get_webserver_port) - jq '.networks.nnn.bind="127.0.0.1:'"$webserver_port"'"' dfx.json | sponge dfx.json - assert_command dfx ping nnn + dfx_start + webserver_port=$(get_webserver_port) + jq '.networks.nnn.bind="127.0.0.1:'"$webserver_port"'"' dfx.json | sponge dfx.json + assert_command dfx ping nnn - assert_match "\"ic_api_version\"" + assert_match "\"ic_api_version\"" } @test "dfx ping succeeds by arbitrary network name to a nonstandard port" { - dfx_start --host 127.0.0.1:12345 + dfx_start --host 127.0.0.1:12345 - # Make dfx use the port from configuration: - rm "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port" + # Make dfx use the port from configuration: + rm "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port" - jq '.networks.arbitrary.providers=["http://127.0.0.1:12345"]' dfx.json | sponge dfx.json + jq '.networks.arbitrary.providers=["http://127.0.0.1:12345"]' dfx.json | sponge dfx.json - assert_command dfx ping arbitrary - assert_match "\"ic_api_version\"" + assert_command dfx ping arbitrary + assert_match "\"ic_api_version\"" - assert_command_fail dfx ping - # this port won't match the ephemeral port that the replica picked - jq '.networks.arbitrary.providers=["127.0.0.1:22113"]' dfx.json | sponge dfx.json - assert_command_fail dfx ping arbitrary + assert_command_fail dfx ping + # this port won't match the ephemeral port that the replica picked + jq '.networks.arbitrary.providers=["127.0.0.1:22113"]' dfx.json | sponge dfx.json + assert_command_fail dfx ping arbitrary } @test "dfx ping can have a URL for network to ping" { - dfx_start - webserver_port=$(get_webserver_port) - assert_command dfx ping "http://127.0.0.1:$webserver_port" - assert_match "\"ic_api_version\"" + dfx_start + webserver_port=$(get_webserver_port) + assert_command dfx ping "http://127.0.0.1:$webserver_port" + assert_match "\"ic_api_version\"" } diff --git a/e2e/tests-dfx/playground.bash b/e2e/tests-dfx/playground.bash index a2732a4f0c..c90316adb9 100644 --- a/e2e/tests-dfx/playground.bash +++ b/e2e/tests-dfx/playground.bash @@ -3,14 +3,14 @@ load ../utils/_ setup() { - standard_setup - setup_playground - dfx_new hello + standard_setup + setup_playground + dfx_new hello } teardown() { - dfx_stop - standard_teardown + dfx_stop + standard_teardown } setup_playground() { @@ -53,10 +53,10 @@ setup_playground() { assert_match "The principal you are using to call a management function is not part of the controllers." if [ "$(uname)" == "Darwin" ]; then - sed -i '' 's/Hello/Goodbye/g' src/hello_backend/main.mo - elif [ "$(uname)" == "Linux" ]; then - sed -i 's/Hello/Goodbye/g' src/hello_backend/main.mo - fi + sed -i '' 's/Hello/Goodbye/g' src/hello_backend/main.mo + elif [ "$(uname)" == "Linux" ]; then + sed -i 's/Hello/Goodbye/g' src/hello_backend/main.mo + fi assert_command dfx deploy --playground assert_command dfx canister --playground call hello_backend greet '("player")' diff --git a/e2e/tests-dfx/print.bash b/e2e/tests-dfx/print.bash index cef5232c7c..7a1349921a 100644 --- a/e2e/tests-dfx/print.bash +++ b/e2e/tests-dfx/print.bash @@ -3,25 +3,25 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "print_mo" { - install_asset print - dfx_start 2>stderr.txt - dfx canister create --all - dfx build - dfx canister install e2e_project - dfx canister call e2e_project hello - sleep 2 - run tail -2 stderr.txt - assert_match "Hello, World! from DFINITY" + install_asset print + dfx_start 2>stderr.txt + dfx canister create --all + dfx build + dfx canister install e2e_project + dfx canister call e2e_project hello + sleep 2 + run tail -2 stderr.txt + assert_match "Hello, World! from DFINITY" } diff --git a/e2e/tests-dfx/project_local_network.bash b/e2e/tests-dfx/project_local_network.bash index 0f467f27a6..37238ee48e 100644 --- a/e2e/tests-dfx/project_local_network.bash +++ b/e2e/tests-dfx/project_local_network.bash @@ -3,163 +3,163 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx start starts a local network if dfx.json defines one" { - dfx_new hello - cat dfx.json - define_project_network + dfx_new hello + cat dfx.json + define_project_network - dfx_start - dfx deploy + dfx_start + dfx deploy - assert_directory_not_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY" - assert_file_exists .dfx/network/local/pid + assert_directory_not_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY" + assert_file_exists .dfx/network/local/pid } @test "can run more than one project network at the same time" { - mkdir a - cd a - dfx_new hello - install_asset counter - define_project_network - dfx_start - dfx deploy - dfx canister call hello_backend inc - dfx canister call hello_backend inc - - cd ../.. - - mkdir b - cd b - dfx_new hello - install_asset counter - define_project_network - dfx_start - dfx deploy - dfx canister call hello_backend write '(6: nat)' - - cd ../.. - - ( - cd a/hello - assert_command dfx canister call hello_backend read - assert_eq "(2 : nat)" - ) - - ( - cd b/hello - assert_command dfx canister call hello_backend read - assert_eq "(6 : nat)" - ) - - # the above would work even with a shared network. - # So here's the real trick: they will have the same canister ids, because - # each project has its own replica. - HELLO_BACKEND_ID_A="$(cd a/hello ; dfx canister id hello_backend)" - HELLO_BACKEND_ID_B="$(cd b/hello ; dfx canister id hello_backend)" - assert_eq "$HELLO_BACKEND_ID_A" "$HELLO_BACKEND_ID_B" - - (cd a/hello ; dfx stop) - (cd b/hello ; dfx stop) + mkdir a + cd a + dfx_new hello + install_asset counter + define_project_network + dfx_start + dfx deploy + dfx canister call hello_backend inc + dfx canister call hello_backend inc + + cd ../.. + + mkdir b + cd b + dfx_new hello + install_asset counter + define_project_network + dfx_start + dfx deploy + dfx canister call hello_backend write '(6: nat)' + + cd ../.. + + ( + cd a/hello + assert_command dfx canister call hello_backend read + assert_eq "(2 : nat)" + ) + + ( + cd b/hello + assert_command dfx canister call hello_backend read + assert_eq "(6 : nat)" + ) + + # the above would work even with a shared network. + # So here's the real trick: they will have the same canister ids, because + # each project has its own replica. + HELLO_BACKEND_ID_A="$(cd a/hello ; dfx canister id hello_backend)" + HELLO_BACKEND_ID_B="$(cd b/hello ; dfx canister id hello_backend)" + assert_eq "$HELLO_BACKEND_ID_A" "$HELLO_BACKEND_ID_B" + + (cd a/hello ; dfx stop) + (cd b/hello ; dfx stop) } @test "upgrade a wallet in a project-specific network" { - dfx_new hello - define_project_network + dfx_new hello + define_project_network - dfx_start - use_wallet_wasm 0.8.2 + dfx_start + use_wallet_wasm 0.8.2 - dfx identity get-wallet + dfx identity get-wallet - assert_command dfx canister info "$(dfx identity get-wallet)" - assert_match "Module hash: 0x$(wallet_sha 0.8.2)" + assert_command dfx canister info "$(dfx identity get-wallet)" + assert_match "Module hash: 0x$(wallet_sha 0.8.2)" - use_wallet_wasm 0.10.0 + use_wallet_wasm 0.10.0 - dfx wallet upgrade - assert_command dfx canister info "$(dfx identity get-wallet)" - assert_match "Module hash: 0x$(wallet_sha 0.10.0)" + dfx wallet upgrade + assert_command dfx canister info "$(dfx identity get-wallet)" + assert_match "Module hash: 0x$(wallet_sha 0.10.0)" } @test "with a project-specific network, wallet id is stored local to the project" { - dfx_new hello - define_project_network + dfx_new hello + define_project_network - dfx_start + dfx_start - assert_file_not_exists .dfx/local/wallets.json + assert_file_not_exists .dfx/local/wallets.json - WALLET_ID="$(dfx identity get-wallet)" + WALLET_ID="$(dfx identity get-wallet)" - assert_command jq -r .identities.default.local .dfx/local/wallets.json - assert_eq "$WALLET_ID" - assert_file_not_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + assert_command jq -r .identities.default.local .dfx/local/wallets.json + assert_eq "$WALLET_ID" + assert_file_not_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" } @test "with a shared network, wallet id is stored in the shared location" { - dfx_start + dfx_start - assert_file_not_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + assert_file_not_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" - WALLET_ID="$(dfx identity get-wallet)" + WALLET_ID="$(dfx identity get-wallet)" - assert_command jq -r .identities.default.local "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" - assert_eq "$WALLET_ID" - assert_file_not_exists .dfx/local/wallets.json + assert_command jq -r .identities.default.local "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" + assert_eq "$WALLET_ID" + assert_file_not_exists .dfx/local/wallets.json } @test "for project-specific network create stores canister ids for default-ephemeral local networks in .dfx/{network}/canister_ids.json" { - dfx_new hello - define_project_network + dfx_new hello + define_project_network - dfx_start + dfx_start - dfx canister create --all --network local + dfx canister create --all --network local - # canister creates writes to a spinner (stderr), not stdout - assert_command dfx canister id hello_backend --network local - assert_match "$(jq -r .hello_backend.local <.dfx/local/canister_ids.json)" + # canister creates writes to a spinner (stderr), not stdout + assert_command dfx canister id hello_backend --network local + assert_match "$(jq -r .hello_backend.local <.dfx/local/canister_ids.json)" } @test "for project-specific network, create with wallet stores canister ids for configured-ephemeral networks in canister_ids.json" { - dfx_new hello - define_project_network - dfx_start + dfx_new hello + define_project_network + dfx_start - setup_actuallylocal_project_network - jq '.networks.actuallylocal.type="ephemeral"' dfx.json | sponge dfx.json - dfx_set_wallet + setup_actuallylocal_project_network + jq '.networks.actuallylocal.type="ephemeral"' dfx.json | sponge dfx.json + dfx_set_wallet - dfx canister create --all --network actuallylocal + dfx canister create --all --network actuallylocal - # canister creates writes to a spinner (stderr), not stdout - assert_command dfx canister id hello_backend --network actuallylocal - assert_match "$(jq -r .hello_backend.actuallylocal <.dfx/actuallylocal/canister_ids.json)" + # canister creates writes to a spinner (stderr), not stdout + assert_command dfx canister id hello_backend --network actuallylocal + assert_match "$(jq -r .hello_backend.actuallylocal <.dfx/actuallylocal/canister_ids.json)" } @test "dfx start and stop take into account dfx 0.11.x pid files" { - dfx_new hello - define_project_network - dfx_start + dfx_new hello + define_project_network + dfx_start - mv .dfx/network/local/pid .dfx/pid + mv .dfx/network/local/pid .dfx/pid - assert_command_fail dfx start - assert_match 'dfx is already running' + assert_command_fail dfx start + assert_match 'dfx is already running' - assert_command dfx stop - assert_file_not_exists .dfx/pid - assert_not_match "Nothing to do" - assert_command dfx stop - assert_match "Nothing to do" + assert_command dfx stop + assert_file_not_exists .dfx/pid + assert_not_match "Nothing to do" + assert_command dfx stop + assert_match "Nothing to do" } diff --git a/e2e/tests-dfx/provider.bash b/e2e/tests-dfx/provider.bash index d7cfbf7129..ddd37ed625 100644 --- a/e2e/tests-dfx/provider.bash +++ b/e2e/tests-dfx/provider.bash @@ -3,16 +3,16 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - [ -f replica.pid ] && kill -9 "$(cat replica.pid)" - dfx_stop + [ -f replica.pid ] && kill -9 "$(cat replica.pid)" + dfx_stop - standard_teardown + standard_teardown } # This test is around 15 seconds to run. I don't think it should be faster without raising the @@ -23,8 +23,8 @@ teardown() { # Start a replica manually on a specific port. "$(dfx cache show)/replica" --config ' - [http_handler] - write_port_to="port" + [http_handler] + write_port_to="port" ' & echo $! > replica.pid # Use a local file for the replica. sleep 5 # Wait for replica to be available. @@ -48,17 +48,17 @@ teardown() { } @test "network as URL creates the expected name" { - dfx_start - webserver_port=$(get_webserver_port) - dfx canister create --all --network "http://127.0.0.1:$webserver_port" - [ -d ".dfx/http___127_0_0_1_$webserver_port" ] + dfx_start + webserver_port=$(get_webserver_port) + dfx canister create --all --network "http://127.0.0.1:$webserver_port" + [ -d ".dfx/http___127_0_0_1_$webserver_port" ] } @test "network as URL does not create unexpected names" { - dfx_start - webserver_port=$(get_webserver_port) - dfx canister create --all --network "http://127.0.0.1:$webserver_port" - dfx build --all --network "http://127.0.0.1:$webserver_port" - dfx canister install --all --network "http://127.0.0.1:$webserver_port" - assert_eq 1 "$(find .dfx/http* -maxdepth 0 | wc -l | tr -d ' ')" + dfx_start + webserver_port=$(get_webserver_port) + dfx canister create --all --network "http://127.0.0.1:$webserver_port" + dfx build --all --network "http://127.0.0.1:$webserver_port" + dfx canister install --all --network "http://127.0.0.1:$webserver_port" + assert_eq 1 "$(find .dfx/http* -maxdepth 0 | wc -l | tr -d ' ')" } diff --git a/e2e/tests-dfx/remote.bash b/e2e/tests-dfx/remote.bash index cdc4b9f22c..5bd9a08d04 100644 --- a/e2e/tests-dfx/remote.bash +++ b/e2e/tests-dfx/remote.bash @@ -3,318 +3,318 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "canister call and sign" { - install_asset remote/call/actual - dfx_start - setup_actuallylocal_shared_network - - dfx identity new --storage-mode plaintext alice - - assert_command dfx deploy --network actuallylocal --identity alice - assert_command dfx canister call remote write '("initial data in the remote canister")' --identity alice --network actuallylocal - assert_command dfx canister call remote read --identity alice --network actuallylocal - assert_eq '("initial data in the remote canister")' - - REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) - echo "Remote canister id: $REMOTE_CANISTER_ID" - rm canister_ids.json - - install_asset remote/call/mock - jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json - setup_actuallylocal_shared_network - setup_local_shared_network - - # set up: remote method is update, local is query - # call remote method as update to make a change - assert_command dfx deploy --network actuallylocal - assert_command dfx canister call remote which_am_i --network actuallylocal - assert_eq '("actual")' - - cat dfx.json - cat canister_ids.json - - # - # Here the mock doesn't know about the method at all. - # In order for the candid decoder to know the type, dfx must both: - # - look up the canister by (remote) canister id - # - use the remote candid definition - # - assert_command dfx canister call --query "$REMOTE_CANISTER_ID" make_struct '("A query by principal", "B query by principal")' --network actuallylocal - assert_eq '(record { a = "A query by principal"; b = "B query by principal" })' - assert_command dfx canister call "$REMOTE_CANISTER_ID" make_struct '("A default by principal", "B default by principal")' --network actuallylocal - assert_eq '(record { a = "A default by principal"; b = "B default by principal" })' - assert_command dfx canister call --update "$REMOTE_CANISTER_ID" make_struct '("A update by principal", "B update by principal")' --network actuallylocal - assert_eq '(record { a = "A update by principal"; b = "B update by principal" })' - - assert_command dfx canister call --query remote make_struct '("A query by name", "B query by name")' --network actuallylocal - assert_eq '(record { a = "A query by name"; b = "B query by name" })' - assert_command dfx canister call remote make_struct '("A default by name", "B default by name")' --network actuallylocal - assert_eq '(record { a = "A default by name"; b = "B default by name" })' - assert_command dfx canister call --update remote make_struct '("A update by name", "B update by name")' --network actuallylocal - assert_eq '(record { a = "A update by name"; b = "B update by name" })' - - # This also should work when no canister type can be determined / if no info but the bare minimum of remote id and remote candid is given: - jq 'del(.canisters.remote.main)' dfx.json | sponge dfx.json - assert_command dfx canister call --query remote make_struct '("A query by name", "B query by name")' --network actuallylocal - assert_eq '(record { a = "A query by name"; b = "B query by name" })' - - # We can't check this for sign, because dfx canister send outputs something like this: - # To see the content of response, copy-paste the encoded string into cbor.me. - # Response: d9d9f7a2667374617475736[snip]2696e636970616c - - # - # Here: - # - the actual method is an update - # - the mock method is a query - # - in remote candid definition, the method is an update - # We try to call with --query. - # We expect dfx to notice that the method is in fact an update, which it knows from the remote candid definition. - # - assert_command_fail dfx canister call --query "$REMOTE_CANISTER_ID" actual_update_mock_query_remote_candid_update '("call by principal with --query")' --network actuallylocal - assert_match 'not a query method' - assert_command_fail dfx canister call --query remote actual_update_mock_query_remote_candid_update '("call by name with --query")' --network actuallylocal - assert_match 'not a query method' - - # And the same for dfx canister sign: - assert_command_fail dfx canister sign --query "$REMOTE_CANISTER_ID" actual_update_mock_query_remote_candid_update '("call by principal with --query")' --network actuallylocal - assert_match 'not a query method' - assert_command_fail dfx canister sign --query remote actual_update_mock_query_remote_candid_update '("call by name with --query")' --network actuallylocal - assert_match 'not a query method' + install_asset remote/call/actual + dfx_start + setup_actuallylocal_shared_network + + dfx identity new --storage-mode plaintext alice + + assert_command dfx deploy --network actuallylocal --identity alice + assert_command dfx canister call remote write '("initial data in the remote canister")' --identity alice --network actuallylocal + assert_command dfx canister call remote read --identity alice --network actuallylocal + assert_eq '("initial data in the remote canister")' + + REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) + echo "Remote canister id: $REMOTE_CANISTER_ID" + rm canister_ids.json + + install_asset remote/call/mock + jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json + setup_actuallylocal_shared_network + setup_local_shared_network + + # set up: remote method is update, local is query + # call remote method as update to make a change + assert_command dfx deploy --network actuallylocal + assert_command dfx canister call remote which_am_i --network actuallylocal + assert_eq '("actual")' + + cat dfx.json + cat canister_ids.json + + # + # Here the mock doesn't know about the method at all. + # In order for the candid decoder to know the type, dfx must both: + # - look up the canister by (remote) canister id + # - use the remote candid definition + # + assert_command dfx canister call --query "$REMOTE_CANISTER_ID" make_struct '("A query by principal", "B query by principal")' --network actuallylocal + assert_eq '(record { a = "A query by principal"; b = "B query by principal" })' + assert_command dfx canister call "$REMOTE_CANISTER_ID" make_struct '("A default by principal", "B default by principal")' --network actuallylocal + assert_eq '(record { a = "A default by principal"; b = "B default by principal" })' + assert_command dfx canister call --update "$REMOTE_CANISTER_ID" make_struct '("A update by principal", "B update by principal")' --network actuallylocal + assert_eq '(record { a = "A update by principal"; b = "B update by principal" })' + + assert_command dfx canister call --query remote make_struct '("A query by name", "B query by name")' --network actuallylocal + assert_eq '(record { a = "A query by name"; b = "B query by name" })' + assert_command dfx canister call remote make_struct '("A default by name", "B default by name")' --network actuallylocal + assert_eq '(record { a = "A default by name"; b = "B default by name" })' + assert_command dfx canister call --update remote make_struct '("A update by name", "B update by name")' --network actuallylocal + assert_eq '(record { a = "A update by name"; b = "B update by name" })' + + # This also should work when no canister type can be determined / if no info but the bare minimum of remote id and remote candid is given: + jq 'del(.canisters.remote.main)' dfx.json | sponge dfx.json + assert_command dfx canister call --query remote make_struct '("A query by name", "B query by name")' --network actuallylocal + assert_eq '(record { a = "A query by name"; b = "B query by name" })' + + # We can't check this for sign, because dfx canister send outputs something like this: + # To see the content of response, copy-paste the encoded string into cbor.me. + # Response: d9d9f7a2667374617475736[snip]2696e636970616c + + # + # Here: + # - the actual method is an update + # - the mock method is a query + # - in remote candid definition, the method is an update + # We try to call with --query. + # We expect dfx to notice that the method is in fact an update, which it knows from the remote candid definition. + # + assert_command_fail dfx canister call --query "$REMOTE_CANISTER_ID" actual_update_mock_query_remote_candid_update '("call by principal with --query")' --network actuallylocal + assert_match 'not a query method' + assert_command_fail dfx canister call --query remote actual_update_mock_query_remote_candid_update '("call by name with --query")' --network actuallylocal + assert_match 'not a query method' + + # And the same for dfx canister sign: + assert_command_fail dfx canister sign --query "$REMOTE_CANISTER_ID" actual_update_mock_query_remote_candid_update '("call by principal with --query")' --network actuallylocal + assert_match 'not a query method' + assert_command_fail dfx canister sign --query remote actual_update_mock_query_remote_candid_update '("call by name with --query")' --network actuallylocal + assert_match 'not a query method' } @test "canister create fails for a remote canister" { - install_asset remote/actual - dfx_start - setup_actuallylocal_shared_network + install_asset remote/actual + dfx_start + setup_actuallylocal_shared_network - dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext alice - assert_command dfx deploy --network actuallylocal --identity alice + assert_command dfx deploy --network actuallylocal --identity alice - REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) - echo "Remote canister id: $REMOTE_CANISTER_ID" - rm canister_ids.json + REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) + echo "Remote canister id: $REMOTE_CANISTER_ID" + rm canister_ids.json - install_asset remote/basic - setup_actuallylocal_shared_network - setup_local_shared_network - jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json + install_asset remote/basic + setup_actuallylocal_shared_network + setup_local_shared_network + jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json - assert_command_fail dfx canister create remote --network actuallylocal - assert_match "Canister 'remote' is a remote canister on network 'actuallylocal', and cannot be created from here." + assert_command_fail dfx canister create remote --network actuallylocal + assert_match "Canister 'remote' is a remote canister on network 'actuallylocal', and cannot be created from here." } @test "canister install fails for a remote canister" { - install_asset remote/actual - dfx_start - setup_actuallylocal_shared_network + install_asset remote/actual + dfx_start + setup_actuallylocal_shared_network - dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext alice - assert_command dfx deploy --network actuallylocal --identity alice + assert_command dfx deploy --network actuallylocal --identity alice - REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) - echo "Remote canister id: $REMOTE_CANISTER_ID" - rm canister_ids.json + REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) + echo "Remote canister id: $REMOTE_CANISTER_ID" + rm canister_ids.json - install_asset remote/basic - setup_actuallylocal_shared_network - setup_local_shared_network - jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json + install_asset remote/basic + setup_actuallylocal_shared_network + setup_local_shared_network + jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json - assert_command_fail dfx canister install remote --network actuallylocal - assert_match "Canister 'remote' is a remote canister on network 'actuallylocal', and cannot be installed from here." + assert_command_fail dfx canister install remote --network actuallylocal + assert_match "Canister 'remote' is a remote canister on network 'actuallylocal', and cannot be installed from here." } @test "canister create --all, canister install --all skip remote canisters" { - install_asset remote/actual - dfx_start - setup_actuallylocal_shared_network + install_asset remote/actual + dfx_start + setup_actuallylocal_shared_network - # - # Set up the "remote" canister, with a different controller in order to - # demonstrate that we don't try to install/upgrade it as a remote canister. - # - dfx identity new --storage-mode plaintext alice + # + # Set up the "remote" canister, with a different controller in order to + # demonstrate that we don't try to install/upgrade it as a remote canister. + # + dfx identity new --storage-mode plaintext alice - assert_command dfx deploy --network actuallylocal --identity alice - assert_command dfx canister call remote write '("this is data in the remote canister")' --identity alice --network actuallylocal + assert_command dfx deploy --network actuallylocal --identity alice + assert_command dfx canister call remote write '("this is data in the remote canister")' --identity alice --network actuallylocal - assert_command dfx canister call remote read --identity alice --network actuallylocal - assert_eq '("this is data in the remote canister")' + assert_command dfx canister call remote read --identity alice --network actuallylocal + assert_eq '("this is data in the remote canister")' - REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) - echo "Remote canister id: $REMOTE_CANISTER_ID" - rm canister_ids.json + REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) + echo "Remote canister id: $REMOTE_CANISTER_ID" + rm canister_ids.json - install_asset remote/basic - setup_actuallylocal_shared_network - setup_local_shared_network - jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json + install_asset remote/basic + setup_actuallylocal_shared_network + setup_local_shared_network + jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json - # Here we want to make sure that create+build+install works with the common flow - assert_command dfx canister create --all - assert_command dfx build - assert_command dfx canister install --all + # Here we want to make sure that create+build+install works with the common flow + assert_command dfx canister create --all + assert_command dfx build + assert_command dfx canister install --all - assert_command dfx canister call basic read_remote - assert_eq '("")' - assert_command dfx canister call remote which_am_i - assert_eq '("mock")' + assert_command dfx canister call basic read_remote + assert_eq '("")' + assert_command dfx canister call remote which_am_i + assert_eq '("mock")' - assert_command dfx canister create --all --network actuallylocal - assert_command dfx build --network actuallylocal -vv - assert_match "Not building canister 'remote'" - assert_command dfx canister install --all --network actuallylocal + assert_command dfx canister create --all --network actuallylocal + assert_command dfx build --network actuallylocal -vv + assert_match "Not building canister 'remote'" + assert_command dfx canister install --all --network actuallylocal - assert_command dfx canister call basic read_remote --network actuallylocal - assert_eq '("this is data in the remote canister")' + assert_command dfx canister call basic read_remote --network actuallylocal + assert_eq '("this is data in the remote canister")' - # We can change the value by calling the original canister - assert_command dfx canister call "${REMOTE_CANISTER_ID}" write '("altered data (by canister id) in the remote canister")' --network actuallylocal - assert_command dfx canister call basic read_remote --network actuallylocal - assert_eq '("altered data (by canister id) in the remote canister")' + # We can change the value by calling the original canister + assert_command dfx canister call "${REMOTE_CANISTER_ID}" write '("altered data (by canister id) in the remote canister")' --network actuallylocal + assert_command dfx canister call basic read_remote --network actuallylocal + assert_eq '("altered data (by canister id) in the remote canister")' - # We can also call through the canister name - assert_command dfx canister call remote write '("altered data (by canister name) in the remote canister")' --network actuallylocal - assert_command dfx canister call basic read_remote --network actuallylocal - assert_eq '("altered data (by canister name) in the remote canister")' + # We can also call through the canister name + assert_command dfx canister call remote write '("altered data (by canister name) in the remote canister")' --network actuallylocal + assert_command dfx canister call basic read_remote --network actuallylocal + assert_eq '("altered data (by canister name) in the remote canister")' - assert_command dfx canister call remote which_am_i --network actuallylocal - assert_eq '("actual")' + assert_command dfx canister call remote which_am_i --network actuallylocal + assert_eq '("actual")' - assert_command jq .basic.actuallylocal canister_ids.json - assert_eq '"'"$(dfx canister id basic --network actuallylocal)"'"' + assert_command jq .basic.actuallylocal canister_ids.json + assert_eq '"'"$(dfx canister id basic --network actuallylocal)"'"' - assert_command jq .remote canister_ids.json - assert_eq "null" + assert_command jq .remote canister_ids.json + assert_eq "null" - # Assert frontend declarations are actually created - dfx generate - assert_file_exists "src/declarations/remote/remote.did" - assert_file_exists "src/declarations/remote/remote.did.js" - assert_file_exists "src/declarations/remote/remote.did.d.ts" - assert_file_exists "src/declarations/remote/index.js" - assert_file_exists "src/declarations/remote/index.d.ts" + # Assert frontend declarations are actually created + dfx generate + assert_file_exists "src/declarations/remote/remote.did" + assert_file_exists "src/declarations/remote/remote.did.js" + assert_file_exists "src/declarations/remote/remote.did.d.ts" + assert_file_exists "src/declarations/remote/index.js" + assert_file_exists "src/declarations/remote/index.d.ts" } @test "for remote build, checks imports against the candid file rather than the mock" { - # In this test, a canister with a remote ID also has a candid file specified. - # When building for the remote network, we expect to use this candid file, - # and for methods calls that don't match the candid file to fail. - - install_asset remote/actual - dfx_start - setup_actuallylocal_shared_network - - # - # Set up the "remote" canister, with a different controller in order to - # demonstrate that we don't try to install/upgrade it as a remote canister. - # - dfx identity new --storage-mode plaintext alice - - assert_command dfx deploy --network actuallylocal --identity alice - - REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) - echo "Remote canister id: $REMOTE_CANISTER_ID" - rm canister_ids.json - - install_asset remote/extra - jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json - setup_actuallylocal_shared_network - setup_local_shared_network - - # We expect the local network deploy to succeed, because it is built using the candid file from - # the local canister. - assert_command dfx deploy - - # And we can call the extra method, - assert_command dfx canister call extra remote_extra - assert_eq '("extra!")' - - # We expect the remote network deploy to fail, because it is built using the candid file - # specified for the remote canister. That candid file doesn't define the extra method - # that is present in the mock. - assert_command_fail dfx deploy --network actuallylocal + # In this test, a canister with a remote ID also has a candid file specified. + # When building for the remote network, we expect to use this candid file, + # and for methods calls that don't match the candid file to fail. + + install_asset remote/actual + dfx_start + setup_actuallylocal_shared_network + + # + # Set up the "remote" canister, with a different controller in order to + # demonstrate that we don't try to install/upgrade it as a remote canister. + # + dfx identity new --storage-mode plaintext alice + + assert_command dfx deploy --network actuallylocal --identity alice + + REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) + echo "Remote canister id: $REMOTE_CANISTER_ID" + rm canister_ids.json + + install_asset remote/extra + jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json + setup_actuallylocal_shared_network + setup_local_shared_network + + # We expect the local network deploy to succeed, because it is built using the candid file from + # the local canister. + assert_command dfx deploy + + # And we can call the extra method, + assert_command dfx canister call extra remote_extra + assert_eq '("extra!")' + + # We expect the remote network deploy to fail, because it is built using the candid file + # specified for the remote canister. That candid file doesn't define the extra method + # that is present in the mock. + assert_command_fail dfx deploy --network actuallylocal } @test "build + install + call -- remote" { - install_asset remote/actual - dfx_start - setup_actuallylocal_shared_network + install_asset remote/actual + dfx_start + setup_actuallylocal_shared_network - # - # Set up the "remote" canister, with a different controller in order to - # demonstrate that we don't try to install/upgrade it as a remote canister. - # - dfx identity new --storage-mode plaintext alice + # + # Set up the "remote" canister, with a different controller in order to + # demonstrate that we don't try to install/upgrade it as a remote canister. + # + dfx identity new --storage-mode plaintext alice - assert_command dfx deploy --network actuallylocal --identity alice - assert_command dfx canister call remote write '("this is data in the remote canister")' --network actuallylocal --identity alice + assert_command dfx deploy --network actuallylocal --identity alice + assert_command dfx canister call remote write '("this is data in the remote canister")' --network actuallylocal --identity alice - assert_command dfx canister call remote read --network actuallylocal --identity alice - assert_eq '("this is data in the remote canister")' + assert_command dfx canister call remote read --network actuallylocal --identity alice + assert_eq '("this is data in the remote canister")' - REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) - echo "Remote canister id: $REMOTE_CANISTER_ID" - rm canister_ids.json + REMOTE_CANISTER_ID=$(jq -r .remote.actuallylocal canister_ids.json) + echo "Remote canister id: $REMOTE_CANISTER_ID" + rm canister_ids.json - install_asset remote/basic - setup_actuallylocal_shared_network - setup_local_shared_network - jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json + install_asset remote/basic + setup_actuallylocal_shared_network + setup_local_shared_network + jq ".canisters.remote.remote.id.actuallylocal=\"$REMOTE_CANISTER_ID\"" dfx.json | sponge dfx.json - assert_command dfx deploy - assert_command dfx canister call basic read_remote - assert_eq '("")' - assert_command dfx canister call remote which_am_i - assert_eq '("mock")' + assert_command dfx deploy + assert_command dfx canister call basic read_remote + assert_eq '("")' + assert_command dfx canister call remote which_am_i + assert_eq '("mock")' - assert_command dfx deploy --network actuallylocal -vv - assert_match "Not building canister 'remote'" - assert_command dfx canister call basic read_remote --network actuallylocal - assert_eq '("this is data in the remote canister")' + assert_command dfx deploy --network actuallylocal -vv + assert_match "Not building canister 'remote'" + assert_command dfx canister call basic read_remote --network actuallylocal + assert_eq '("this is data in the remote canister")' - # We can change the value by calling the original canister - assert_command dfx canister call "${REMOTE_CANISTER_ID}" write '("data altered by canister id in the remote canister")' --network actuallylocal - assert_command dfx canister call basic read_remote --network actuallylocal - assert_eq '("data altered by canister id in the remote canister")' + # We can change the value by calling the original canister + assert_command dfx canister call "${REMOTE_CANISTER_ID}" write '("data altered by canister id in the remote canister")' --network actuallylocal + assert_command dfx canister call basic read_remote --network actuallylocal + assert_eq '("data altered by canister id in the remote canister")' - # We can also call through the canister name - assert_command dfx canister call remote write '("data altered by canister name in the remote canister")' --network actuallylocal - assert_command dfx canister call basic read_remote --network actuallylocal - assert_eq '("data altered by canister name in the remote canister")' + # We can also call through the canister name + assert_command dfx canister call remote write '("data altered by canister name in the remote canister")' --network actuallylocal + assert_command dfx canister call basic read_remote --network actuallylocal + assert_eq '("data altered by canister name in the remote canister")' - assert_command dfx canister call remote which_am_i --network actuallylocal - assert_eq '("actual")' + assert_command dfx canister call remote which_am_i --network actuallylocal + assert_eq '("actual")' - assert_command jq .basic.actuallylocal canister_ids.json - assert_eq '"'"$(dfx canister id basic --network actuallylocal)"'"' + assert_command jq .basic.actuallylocal canister_ids.json + assert_eq '"'"$(dfx canister id basic --network actuallylocal)"'"' - assert_command jq .remote canister_ids.json - assert_eq "null" + assert_command jq .remote canister_ids.json + assert_eq "null" } @test "build step sets remote cid environment variable correctly" { - install_asset remote/envvar - install_asset wasm/identity # need to have some .did and .wasm files to point our custom canister to - dfx_start - setup_actuallylocal_shared_network + install_asset remote/envvar + install_asset wasm/identity # need to have some .did and .wasm files to point our custom canister to + dfx_start + setup_actuallylocal_shared_network - assert_command dfx deploy --network actuallylocal -vv - assert_match "CANISTER_ID_remote: qoctq-giaaa-aaaaa-aaaea-cai" + assert_command dfx deploy --network actuallylocal -vv + assert_match "CANISTER_ID_remote: qoctq-giaaa-aaaaa-aaaea-cai" } diff --git a/e2e/tests-dfx/remote_generate_binding.bash b/e2e/tests-dfx/remote_generate_binding.bash index f6dff63a3b..d29c16fe70 100644 --- a/e2e/tests-dfx/remote_generate_binding.bash +++ b/e2e/tests-dfx/remote_generate_binding.bash @@ -3,114 +3,114 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - standard_teardown + standard_teardown } @test "remote generate-binding succeeds for --all" { - install_asset remote_generate_binding/basic + install_asset remote_generate_binding/basic - assert_command dfx remote generate-binding --all + assert_command dfx remote generate-binding --all - assert_file_exists remote.mo - assert_file_exists remote.rs - assert_file_exists remote.ts - assert_file_exists remote.js + assert_file_exists remote.mo + assert_file_exists remote.rs + assert_file_exists remote.ts + assert_file_exists remote.js } @test "remote generate-binding --overwrite succeeds for --all" { - install_asset remote_generate_binding/basic - echo "to_overwrite" > remote.mo - echo "to_overwrite" > remote.rs + install_asset remote_generate_binding/basic + echo "to_overwrite" > remote.mo + echo "to_overwrite" > remote.rs - assert_command dfx remote generate-binding --overwrite --all + assert_command dfx remote generate-binding --overwrite --all - # should generate if not present - assert_file_exists remote.js - assert_file_exists remote.ts + # should generate if not present + assert_file_exists remote.js + assert_file_exists remote.ts - # should overwrite if already present - assert_neq "to_overwrite" "$(cat remote.mo)" - assert_neq "to_overwrite" "$(cat remote.rs)" + # should overwrite if already present + assert_neq "to_overwrite" "$(cat remote.mo)" + assert_neq "to_overwrite" "$(cat remote.rs)" } @test "remote generate-binding does not overwrite if file already present" { - install_asset remote_generate_binding/basic - echo "to_overwrite" > remote.mo - echo "to_overwrite" > remote.rs + install_asset remote_generate_binding/basic + echo "to_overwrite" > remote.mo + echo "to_overwrite" > remote.rs - assert_command dfx remote generate-binding --all + assert_command dfx remote generate-binding --all - # should generate if not present - assert_file_exists remote.ts - assert_file_exists remote.js + # should generate if not present + assert_file_exists remote.ts + assert_file_exists remote.js - # should not overwrite if already present - assert_eq "to_overwrite" "$(cat remote.mo)" - assert_eq "to_overwrite" "$(cat remote.rs)" + # should not overwrite if already present + assert_eq "to_overwrite" "$(cat remote.mo)" + assert_eq "to_overwrite" "$(cat remote.rs)" } @test "remote generate-binding succeeds for specific rust canister" { - install_asset remote_generate_binding/basic + install_asset remote_generate_binding/basic - assert_command dfx remote generate-binding remote-rust + assert_command dfx remote generate-binding remote-rust - assert_file_exists remote.rs - assert_file_not_exists remote.mo - assert_file_not_exists remote.ts - assert_file_not_exists remote.js + assert_file_exists remote.rs + assert_file_not_exists remote.mo + assert_file_not_exists remote.ts + assert_file_not_exists remote.js } @test "remote generate-binding succeeds for specific motoko canister" { - install_asset remote_generate_binding/basic + install_asset remote_generate_binding/basic - assert_command dfx remote generate-binding remote-motoko + assert_command dfx remote generate-binding remote-motoko - assert_file_exists remote.mo - assert_file_not_exists remote.rs - assert_file_not_exists remote.ts - assert_file_not_exists remote.js + assert_file_exists remote.mo + assert_file_not_exists remote.rs + assert_file_not_exists remote.ts + assert_file_not_exists remote.js } @test "remote generate-binding succeeds for specific javascript canister" { - install_asset remote_generate_binding/basic + install_asset remote_generate_binding/basic - assert_command dfx remote generate-binding remote-javascript + assert_command dfx remote generate-binding remote-javascript - assert_file_exists remote.js - assert_file_not_exists remote.mo - assert_file_not_exists remote.rs - assert_file_not_exists remote.ts + assert_file_exists remote.js + assert_file_not_exists remote.mo + assert_file_not_exists remote.rs + assert_file_not_exists remote.ts } @test "remote generate-binding succeeds for specific typescript canister" { - install_asset remote_generate_binding/basic + install_asset remote_generate_binding/basic - assert_command dfx remote generate-binding remote-typescript + assert_command dfx remote generate-binding remote-typescript - assert_file_exists remote.ts - assert_file_not_exists remote.mo - assert_file_not_exists remote.rs - assert_file_not_exists remote.js + assert_file_exists remote.ts + assert_file_not_exists remote.mo + assert_file_not_exists remote.rs + assert_file_not_exists remote.js } @test "remote generate-binding --overwrite succeeds for specific canister" { - install_asset remote_generate_binding/basic - echo "to_overwrite" > remote.mo + install_asset remote_generate_binding/basic + echo "to_overwrite" > remote.mo - # should not overwrite without --overwrite - assert_command dfx remote generate-binding remote-motoko - assert_match 'already exists' - assert_eq "to_overwrite" "$(cat remote.mo)" + # should not overwrite without --overwrite + assert_command dfx remote generate-binding remote-motoko + assert_match 'already exists' + assert_eq "to_overwrite" "$(cat remote.mo)" - # should overwrite with --overwrite - assert_command dfx remote generate-binding --overwrite remote-motoko - assert_neq "to_overwrite" "$(cat remote.mo)" + # should overwrite with --overwrite + assert_command dfx remote generate-binding --overwrite remote-motoko + assert_neq "to_overwrite" "$(cat remote.mo)" } @test "remote generate-binding incomplete command rejected" { - assert_command_fail dfx remote generate-binding + assert_command_fail dfx remote generate-binding } diff --git a/e2e/tests-dfx/request_status.bash b/e2e/tests-dfx/request_status.bash index 21246ef8e5..ef918b2c4c 100644 --- a/e2e/tests-dfx/request_status.bash +++ b/e2e/tests-dfx/request_status.bash @@ -3,29 +3,29 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "request-status output raw" { - install_asset greet - dfx_start - dfx canister create --all - dfx build + install_asset greet + dfx_start + dfx canister create --all + dfx build - dfx canister install hello_backend + dfx canister install hello_backend - assert_command dfx canister call --async hello_backend greet Bob + assert_command dfx canister call --async hello_backend greet Bob - # shellcheck disable=SC2154 - assert_command dfx canister request-status --output raw "$stdout" "$(dfx canister id hello_backend)" - assert_eq '4449444c0001710b48656c6c6f2c20426f6221' + # shellcheck disable=SC2154 + assert_command dfx canister request-status --output raw "$stdout" "$(dfx canister id hello_backend)" + assert_eq '4449444c0001710b48656c6c6f2c20426f6221' } diff --git a/e2e/tests-dfx/rust.bash b/e2e/tests-dfx/rust.bash index eea3705196..be545b941c 100644 --- a/e2e/tests-dfx/rust.bash +++ b/e2e/tests-dfx/rust.bash @@ -4,61 +4,61 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "rust starter project can build and call" { - dfx_new_rust hello + dfx_new_rust hello - dfx_start - dfx canister create --all - assert_command dfx build hello_backend -vvv - assert_match "Shrinking WASM" - assert_command dfx canister install hello_backend - assert_command dfx canister call hello_backend greet dfinity - assert_match '("Hello, dfinity!")' + dfx_start + dfx canister create --all + assert_command dfx build hello_backend -vvv + assert_match "Shrinking WASM" + assert_command dfx canister install hello_backend + assert_command dfx canister call hello_backend greet dfinity + assert_match '("Hello, dfinity!")' - # dfx sets the candid:service metadata - dfx canister metadata hello_backend candid:service >installed.did - assert_command diff src/hello_backend/hello_backend.did installed.did + # dfx sets the candid:service metadata + dfx canister metadata hello_backend candid:service >installed.did + assert_command diff src/hello_backend/hello_backend.did installed.did } @test "rust canister can resolve dependencies" { - dfx_new_rust rust_deps - install_asset rust_deps - dfx_start - assert_command dfx deploy - assert_command dfx canister call multiply_deps read - assert_match '(1 : nat)' - assert_command dfx canister call multiply_deps mul '(3)' - assert_match '(9 : nat)' - assert_command dfx canister call rust_deps read - assert_match '(9 : nat)' + dfx_new_rust rust_deps + install_asset rust_deps + dfx_start + assert_command dfx deploy + assert_command dfx canister call multiply_deps read + assert_match '(1 : nat)' + assert_command dfx canister call multiply_deps mul '(3)' + assert_match '(9 : nat)' + assert_command dfx canister call rust_deps read + assert_match '(9 : nat)' } @test "rust canister can have nonstandard target dir location" { - dfx_new_rust - # We used to set CARGO_TARGET_DIR="$(echo -ne '\x81')" - # But since rust 1.69, `cargo metadata` returns - # error: path contains invalid UTF-8 characters - CARGO_TARGET_DIR="custom-target" - export CARGO_TARGET_DIR - dfx_start - assert_command dfx deploy - assert_command dfx canister call e2e_project_backend greet dfinity + dfx_new_rust + # We used to set CARGO_TARGET_DIR="$(echo -ne '\x81')" + # But since rust 1.69, `cargo metadata` returns + # error: path contains invalid UTF-8 characters + CARGO_TARGET_DIR="custom-target" + export CARGO_TARGET_DIR + dfx_start + assert_command dfx deploy + assert_command dfx canister call e2e_project_backend greet dfinity } @test "rust canister fails to build with missing lockfile" { - dfx_new_rust - rm -f ./Cargo.lock - dfx_start - assert_command_fail dfx deploy - cargo update - assert_command dfx deploy + dfx_new_rust + rm -f ./Cargo.lock + dfx_start + assert_command_fail dfx deploy + cargo update + assert_command dfx deploy } diff --git a/e2e/tests-dfx/schema.bash b/e2e/tests-dfx/schema.bash index b3433050ee..3886840934 100644 --- a/e2e/tests-dfx/schema.bash +++ b/e2e/tests-dfx/schema.bash @@ -3,22 +3,22 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop - standard_teardown + dfx_stop + standard_teardown } @test "dfx schema prints valid json" { - assert_command dfx schema --outfile out.json - # make sure out.json contains exactly one json object - assert_command jq type out.json - assert_eq '"object"' + assert_command dfx schema --outfile out.json + # make sure out.json contains exactly one json object + assert_command jq type out.json + assert_eq '"object"' } @test "dfx schema still works with broken dfx.json" { - jq '.broken_key="blahblahblah"' dfx.json | sponge dfx.json - assert_command dfx schema + jq '.broken_key="blahblahblah"' dfx.json | sponge dfx.json + assert_command dfx schema } diff --git a/e2e/tests-dfx/shared_local_network.bash b/e2e/tests-dfx/shared_local_network.bash index 586b38e1f8..c1a82364a7 100644 --- a/e2e/tests-dfx/shared_local_network.bash +++ b/e2e/tests-dfx/shared_local_network.bash @@ -3,135 +3,135 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx start creates no files in the current directory when run from an empty directory" { - dfx_start - assert_command find . - assert_eq "." + dfx_start + assert_command find . + assert_eq "." } @test "dfx start creates only an empty .dfx directory when run from a project" { - dfx_new hello - START_DIR_CONTENTS="$(find .)" - dfx_start - END_DIR_CONTENTS="$(find . | grep -v '^\./\.dfx$')" - assert_eq "$START_DIR_CONTENTS" "$END_DIR_CONTENTS" + dfx_new hello + START_DIR_CONTENTS="$(find .)" + dfx_start + END_DIR_CONTENTS="$(find . | grep -v '^\./\.dfx$')" + assert_eq "$START_DIR_CONTENTS" "$END_DIR_CONTENTS" } @test "project data is cleared after dfx start --clean from outside the project" { - mkdir somewhere - ( - cd somewhere - dfx_start - ) - - ( - dfx_new hello - dfx deploy - dfx canister id hello_backend - ) - - mkdir somewhere_else - ( - cd somewhere_else - dfx_stop - dfx_start --clean - ) - - ( - cd hello - assert_command_fail dfx canister id hello_backend - ) -} - -@test "multiple projects with the same canister names" { + mkdir somewhere + ( + cd somewhere dfx_start + ) - mkdir a - cd a + ( dfx_new hello - install_asset counter dfx deploy - HELLO_BACKEND_A="$(dfx canister id hello_backend)" - dfx canister call hello_backend inc - dfx canister call hello_backend inc - cd ../.. + dfx canister id hello_backend + ) - mkdir b - cd b - dfx_new hello - install_asset counter - dfx deploy - HELLO_BACKEND_B="$(dfx canister id hello_backend)" - dfx canister call hello_backend write '(6: nat)' - cd ../.. + mkdir somewhere_else + ( + cd somewhere_else + dfx_stop + dfx_start --clean + ) - assert_command dfx canister call "$HELLO_BACKEND_A" read + ( + cd hello + assert_command_fail dfx canister id hello_backend + ) +} + +@test "multiple projects with the same canister names" { + dfx_start + + mkdir a + cd a + dfx_new hello + install_asset counter + dfx deploy + HELLO_BACKEND_A="$(dfx canister id hello_backend)" + dfx canister call hello_backend inc + dfx canister call hello_backend inc + cd ../.. + + mkdir b + cd b + dfx_new hello + install_asset counter + dfx deploy + HELLO_BACKEND_B="$(dfx canister id hello_backend)" + dfx canister call hello_backend write '(6: nat)' + cd ../.. + + assert_command dfx canister call "$HELLO_BACKEND_A" read + assert_eq "(2 : nat)" + ( + cd a/hello + assert_command dfx canister call hello_backend read assert_eq "(2 : nat)" - ( - cd a/hello - assert_command dfx canister call hello_backend read - assert_eq "(2 : nat)" - ) + ) - assert_command dfx canister call "$HELLO_BACKEND_B" read + assert_command dfx canister call "$HELLO_BACKEND_B" read + assert_eq "(6 : nat)" + ( + cd b/hello + assert_command dfx canister call hello_backend read assert_eq "(6 : nat)" - ( - cd b/hello - assert_command dfx canister call hello_backend read - assert_eq "(6 : nat)" - ) + ) } @test "wallet config file is reset after start --clean" { - dfx_start - - ( - dfx_new hello - dfx wallet balance - dfx identity get-wallet - assert_command dfx diagnose - assert_eq "No problems found" - ) + dfx_start - dfx_stop - dfx_start --clean - - ( - cd hello - assert_command_fail dfx diagnose - assert_match "No wallet found; nothing to do" - ) + ( + dfx_new hello + dfx wallet balance + dfx identity get-wallet + assert_command dfx diagnose + assert_eq "No problems found" + ) + + dfx_stop + dfx_start --clean + + ( + cd hello + assert_command_fail dfx diagnose + assert_match "No wallet found; nothing to do" + ) } @test "separate projects use the same wallet id for a given identity" { - dfx_start + dfx_start - ( dfx_new a ) - ( dfx_new b ) - WALLET_ID_A="$(cd a ; dfx identity get-wallet)" - WALLET_ID_B="$(cd b ; dfx identity get-wallet)" + ( dfx_new a ) + ( dfx_new b ) + WALLET_ID_A="$(cd a ; dfx identity get-wallet)" + WALLET_ID_B="$(cd b ; dfx identity get-wallet)" - assert_eq "$WALLET_ID_A" "$WALLET_ID_B" + assert_eq "$WALLET_ID_A" "$WALLET_ID_B" } @test "dfx identity rename renames wallet for shared local network" { - dfx_start + dfx_start - dfx identity new alice --storage-mode plaintext - ALICE_WALLET="$(dfx identity get-wallet --identity alice)" + dfx identity new alice --storage-mode plaintext + ALICE_WALLET="$(dfx identity get-wallet --identity alice)" - dfx identity rename alice bob - BOB_WALLET="$(dfx identity get-wallet --identity bob)" + dfx identity rename alice bob + BOB_WALLET="$(dfx identity get-wallet --identity bob)" - assert_eq "$ALICE_WALLET" "$BOB_WALLET" + assert_eq "$ALICE_WALLET" "$BOB_WALLET" } diff --git a/e2e/tests-dfx/sign_send.bash b/e2e/tests-dfx/sign_send.bash index 61b879ed89..a0b848c6fd 100644 --- a/e2e/tests-dfx/sign_send.bash +++ b/e2e/tests-dfx/sign_send.bash @@ -3,81 +3,81 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "sign + send" { - install_asset counter - dfx_start - dfx deploy + install_asset counter + dfx_start + dfx deploy - assert_command dfx canister sign --query hello_backend read - assert_eq "Query message generated at [message.json]" + assert_command dfx canister sign --query hello_backend read + assert_eq "Query message generated at [message.json]" - sleep 10 - echo y | assert_command dfx canister send message.json + sleep 10 + echo y | assert_command dfx canister send message.json - assert_command_fail dfx canister send message.json --status - assert_eq "Error: Can only check request_status on update calls." + assert_command_fail dfx canister send message.json --status + assert_eq "Error: Can only check request_status on update calls." - assert_command_fail dfx canister sign --query hello_backend read - assert_eq "Error: [message.json] already exists, please specify a different output file name." + assert_command_fail dfx canister sign --query hello_backend read + assert_eq "Error: [message.json] already exists, please specify a different output file name." - assert_command dfx canister sign --update hello_backend inc --file message-inc.json - assert_eq "Update message generated at [message-inc.json] + assert_command dfx canister sign --update hello_backend inc --file message-inc.json + assert_eq "Update message generated at [message-inc.json] Signed request_status append to update message in [message-inc.json]" - sleep 10 - echo y | assert_command dfx canister send message-inc.json - assert_command dfx canister send message-inc.json --status - assert_match "To see the content of response, copy-paste the encoded string into cbor.me." + sleep 10 + echo y | assert_command dfx canister send message-inc.json + assert_command dfx canister send message-inc.json --status + assert_match "To see the content of response, copy-paste the encoded string into cbor.me." } @test "sign outside of a dfx project" { - cd "$E2E_TEMP_DIR" - mkdir not-a-project-dir - cd not-a-project-dir + cd "$E2E_TEMP_DIR" + mkdir not-a-project-dir + cd not-a-project-dir - assert_command dfx canister sign --query rwlgt-iiaaa-aaaaa-aaaaa-cai read --network ic - assert_match "Query message generated at \[message.json\]" + assert_command dfx canister sign --query rwlgt-iiaaa-aaaaa-aaaaa-cai read --network ic + assert_match "Query message generated at \[message.json\]" } @test "sign subcommand accepts argument from a file" { - install_asset greet - dfx_start - dfx deploy - TMP_NAME_FILE="$(mktemp)" - printf '("Names can be very long")' > "$TMP_NAME_FILE" + install_asset greet + dfx_start + dfx deploy + TMP_NAME_FILE="$(mktemp)" + printf '("Names can be very long")' > "$TMP_NAME_FILE" - assert_command dfx canister sign --argument-file "$TMP_NAME_FILE" --query hello_backend greet - assert_eq "Query message generated at [message.json]" + assert_command dfx canister sign --argument-file "$TMP_NAME_FILE" --query hello_backend greet + assert_eq "Query message generated at [message.json]" - assert_command jq -rc .arg message.json - assert_match "[68,73,68,76,0,1,113,21,78,97,109,101,115,32,99,97,110,32,98,101,32,118,114,121,32,108,111,110,103]" + assert_command jq -rc .arg message.json + assert_match "[68,73,68,76,0,1,113,21,78,97,109,101,115,32,99,97,110,32,98,101,32,118,114,121,32,108,111,110,103]" - rm "$TMP_NAME_FILE" + rm "$TMP_NAME_FILE" } @test "sign subcommand accepts argument from stdin" { - install_asset greet - dfx_start - dfx deploy - TMP_NAME_FILE="$(mktemp)" - printf '("stdin")' > "$TMP_NAME_FILE" + install_asset greet + dfx_start + dfx deploy + TMP_NAME_FILE="$(mktemp)" + printf '("stdin")' > "$TMP_NAME_FILE" - assert_command dfx canister sign --argument-file - --query hello_backend greet < "$TMP_NAME_FILE" - assert_eq "Query message generated at [message.json]" + assert_command dfx canister sign --argument-file - --query hello_backend greet < "$TMP_NAME_FILE" + assert_eq "Query message generated at [message.json]" - assert_command jq -rc .arg message.json - assert_match "[68,73,68,76,0,1,113,5,115,116,100,105,110]" + assert_command jq -rc .arg message.json + assert_match "[68,73,68,76,0,1,113,5,115,116,100,105,110]" - rm "$TMP_NAME_FILE" + rm "$TMP_NAME_FILE" } diff --git a/e2e/tests-dfx/signals.bash b/e2e/tests-dfx/signals.bash index 83251018a1..daa42a8c4c 100644 --- a/e2e/tests-dfx/signals.bash +++ b/e2e/tests-dfx/signals.bash @@ -3,15 +3,15 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx replica kills the replica upon SIGINT" { @@ -23,18 +23,18 @@ teardown() { } dfx_replica_kills_replica() { - skip "dfx replica and bootstrap are deprecated" - signal=$1 + skip "dfx replica and bootstrap are deprecated" + signal=$1 - dfx_patchelf - dfx replica --port 0 & - DFX_PID=$! + dfx_patchelf + dfx replica --port 0 & + DFX_PID=$! - # wait for replica to start - assert_file_eventually_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port" 15s + # wait for replica to start + assert_file_eventually_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port" 15s - kill -"$signal" "$DFX_PID" + kill -"$signal" "$DFX_PID" - assert_process_exits $DFX_PID 15s - assert_no_dfx_start_or_replica_processes + assert_process_exits $DFX_PID 15s + assert_no_dfx_start_or_replica_processes } diff --git a/e2e/tests-dfx/start.bash b/e2e/tests-dfx/start.bash index 08c9915797..2ba61ab7b7 100644 --- a/e2e/tests-dfx/start.bash +++ b/e2e/tests-dfx/start.bash @@ -3,372 +3,372 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx restarts the replica" { - dfx_new hello - dfx_start - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - - echo "replica pid is $REPLICA_PID" - - kill -KILL "$REPLICA_PID" - assert_process_exits "$REPLICA_PID" 15s - - timeout 15s sh -c \ - 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ - || (echo "replica did not restart" && ps aux && exit 1) - wait_until_replica_healthy - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - # even after the above, still sometimes fails with - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' + dfx_new hello + dfx_start + + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' + + REPLICA_PID=$(get_replica_pid) + + echo "replica pid is $REPLICA_PID" + + kill -KILL "$REPLICA_PID" + assert_process_exits "$REPLICA_PID" 15s + + timeout 15s sh -c \ + 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ + || (echo "replica did not restart" && ps aux && exit 1) + wait_until_replica_healthy + + # Sometimes initially get an error like: + # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module + # but the condition clears. + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + # even after the above, still sometimes fails with + # IC0515: Certified state is not available yet. Please try again... + sleep 10 + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + + assert_command dfx canister call hello_backend greet '("Omega")' + assert_eq '("Hello, Omega!")' } @test "dfx restarts icx-proxy" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' - ICX_PROXY_PID=$(get_icx_proxy_pid) + ICX_PROXY_PID=$(get_icx_proxy_pid) - echo "icx-proxy pid is $ICX_PROXY_PID" + echo "icx-proxy pid is $ICX_PROXY_PID" - kill -KILL "$ICX_PROXY_PID" - assert_process_exits "$ICX_PROXY_PID" 15s + kill -KILL "$ICX_PROXY_PID" + assert_process_exits "$ICX_PROXY_PID" 15s - ID=$(dfx canister id hello_frontend) + ID=$(dfx canister id hello_frontend) - timeout 15s sh -c \ - "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY\"/webserver-port)/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ - || (echo "icx-proxy did not restart" && ps aux && exit 1) + timeout 15s sh -c \ + "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY\"/webserver-port)/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ + || (echo "icx-proxy did not restart" && ps aux && exit 1) - assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" + assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" } @test "dfx restarts icx-proxy when the replica restarts" { - dfx_new hello - dfx_start - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - ICX_PROXY_PID=$(get_icx_proxy_pid) - - echo "replica pid is $REPLICA_PID" - echo "icx-proxy pid is $ICX_PROXY_PID" - - kill -KILL "$REPLICA_PID" - assert_process_exits "$REPLICA_PID" 15s - assert_process_exits "$ICX_PROXY_PID" 15s - - timeout 15s sh -c \ - 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ - || (echo "replica did not restart" && ps aux && exit 1) - wait_until_replica_healthy - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - # even after the above, still sometimes fails with - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' - - ID=$(dfx canister id hello_frontend) - - timeout 15s sh -c \ - "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port\")/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ - || (echo "icx-proxy did not restart" && ps aux && exit 1) - - assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" + dfx_new hello + dfx_start + + install_asset greet + assert_command dfx deploy + assert_command dfx canister call hello_backend greet '("Alpha")' + assert_eq '("Hello, Alpha!")' + + REPLICA_PID=$(get_replica_pid) + ICX_PROXY_PID=$(get_icx_proxy_pid) + + echo "replica pid is $REPLICA_PID" + echo "icx-proxy pid is $ICX_PROXY_PID" + + kill -KILL "$REPLICA_PID" + assert_process_exits "$REPLICA_PID" 15s + assert_process_exits "$ICX_PROXY_PID" 15s + + timeout 15s sh -c \ + 'until dfx ping; do echo waiting for replica to restart; sleep 1; done' \ + || (echo "replica did not restart" && ps aux && exit 1) + wait_until_replica_healthy + + # Sometimes initially get an error like: + # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module + # but the condition clears. + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + # even after the above, still sometimes fails with + # IC0515: Certified state is not available yet. Please try again... + sleep 10 + timeout 30s sh -c \ + "until dfx canister call hello_backend greet '(\"wait\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ + || (echo "canister call did not succeed") # but continue, for better error reporting + + assert_command dfx canister call hello_backend greet '("Omega")' + assert_eq '("Hello, Omega!")' + + ID=$(dfx canister id hello_frontend) + + timeout 15s sh -c \ + "until curl --fail http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/webserver-port\")/sample-asset.txt?canisterId=$ID; do echo waiting for icx-proxy to restart; sleep 1; done" \ + || (echo "icx-proxy did not restart" && ps aux && exit 1) + + assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" } @test "dfx start honors replica port configuration" { - create_networks_json - replica_port=$(get_ephemeral_port) - jq ".local.replica.port=$replica_port" "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + create_networks_json + replica_port=$(get_ephemeral_port) + jq ".local.replica.port=$replica_port" "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - dfx_start + dfx_start - assert_command dfx info replica-port - assert_eq "$replica_port" + assert_command dfx info replica-port + assert_eq "$replica_port" } @test "dfx starts replica with subnet_type application - project defaults" { - install_asset subnet_type/project_defaults/application - define_project_network - jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json + install_asset subnet_type/project_defaults/application + define_project_network + jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_match "subnet_type: Application" + assert_command dfx start --background + assert_match "subnet_type: Application" } @test "dfx starts replica with subnet_type verifiedapplication - project defaults" { - install_asset subnet_type/project_defaults/verified_application - define_project_network - jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json + install_asset subnet_type/project_defaults/verified_application + define_project_network + jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_match "subnet_type: VerifiedApplication" + assert_command dfx start --background + assert_match "subnet_type: VerifiedApplication" } @test "dfx starts replica with subnet_type system - project defaults" { - install_asset subnet_type/project_defaults/system - define_project_network - jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json + install_asset subnet_type/project_defaults/system + define_project_network + jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_match "subnet_type: System" + assert_command dfx start --background + assert_match "subnet_type: System" } @test "dfx starts replica with subnet_type application - local network" { - install_asset subnet_type/project_network_settings/application - define_project_network - jq '.networks.local.replica.log_level="info"' dfx.json | sponge dfx.json + install_asset subnet_type/project_network_settings/application + define_project_network + jq '.networks.local.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_match "subnet_type: Application" + assert_command dfx start --background + assert_match "subnet_type: Application" } @test "dfx starts replica with subnet_type verifiedapplication - local network" { - install_asset subnet_type/project_network_settings/verified_application - define_project_network - jq '.networks.local.replica.log_level="info"' dfx.json | sponge dfx.json + install_asset subnet_type/project_network_settings/verified_application + define_project_network + jq '.networks.local.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_match "subnet_type: VerifiedApplication" + assert_command dfx start --background + assert_match "subnet_type: VerifiedApplication" } @test "dfx starts replica with subnet_type system - local network" { - install_asset subnet_type/project_network_settings/system - define_project_network - jq '.networks.local.replica.log_level="info"' dfx.json | sponge dfx.json + install_asset subnet_type/project_network_settings/system + define_project_network + jq '.networks.local.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_match "subnet_type: System" + assert_command dfx start --background + assert_match "subnet_type: System" } @test "dfx starts replica with subnet_type application - shared network" { - install_shared_asset subnet_type/shared_network_settings/application - jq '.local.replica.log_level="info"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + install_shared_asset subnet_type/shared_network_settings/application + jq '.local.replica.log_level="info"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background - assert_match "subnet_type: Application" + assert_command dfx start --background + assert_match "subnet_type: Application" } @test "dfx starts replica with subnet_type verifiedapplication - shared network" { - install_shared_asset subnet_type/shared_network_settings/verified_application - jq '.local.replica.log_level="info"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + install_shared_asset subnet_type/shared_network_settings/verified_application + jq '.local.replica.log_level="info"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background - assert_match "subnet_type: VerifiedApplication" + assert_command dfx start --background + assert_match "subnet_type: VerifiedApplication" } @test "dfx starts replica with subnet_type system - shared network" { - install_shared_asset subnet_type/shared_network_settings/system - jq '.local.replica.log_level="info"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + install_shared_asset subnet_type/shared_network_settings/system + jq '.local.replica.log_level="info"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background - assert_match "subnet_type: System" + assert_command dfx start --background + assert_match "subnet_type: System" } @test "dfx start detects if dfx is already running - shared network" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - assert_command_fail dfx start - assert_match "dfx is already running" + assert_command_fail dfx start + assert_match "dfx is already running" } @test "dfx start for shared network warns about default settings specified in dfx.json that do not apply" { - dfx_new hello - - IGNORED_MESSAGE="Ignoring the 'defaults' field in dfx.json because project settings never apply to the shared network." - APPLY_SETTINGS_MESSAGE="To apply these settings to the shared network, define them in .*/config-root/.config/dfx/networks.json like so" - - jq 'del(.defaults)' dfx.json | sponge dfx.json - jq '.defaults.bitcoin.enabled=true' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_contains "$IGNORED_MESSAGE" - assert_match "$APPLY_SETTINGS_MESSAGE" - assert_contains '"bitcoin": {' - assert_not_contains '"replica"' - assert_not_contains '"canister_http"' - assert_command dfx stop - - jq 'del(.defaults)' dfx.json | sponge dfx.json - jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_contains "$IGNORED_MESSAGE" - assert_match "$APPLY_SETTINGS_MESSAGE" - assert_not_contains '"bitcoin"' - assert_contains '"replica": {' - assert_not_contains '"canister_http"' - assert_command dfx stop - - jq 'del(.defaults)' dfx.json | sponge dfx.json - jq '.defaults.canister_http.enabled=false' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_contains "$IGNORED_MESSAGE" - assert_match "$APPLY_SETTINGS_MESSAGE" - assert_not_contains '"bitcoin"' - assert_not_contains '"replica"' - assert_contains '"canister_http": {' - assert_command dfx stop - - jq 'del(.defaults)' dfx.json | sponge dfx.json - jq '.defaults.bitcoin.enabled=true' dfx.json | sponge dfx.json - jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json - jq '.defaults.canister_http.enabled=false' dfx.json | sponge dfx.json - assert_command dfx start --background - assert_contains "$IGNORED_MESSAGE" - assert_match "$APPLY_SETTINGS_MESSAGE" - assert_contains '"bitcoin": {' - assert_contains '"replica": {' - assert_contains '"canister_http": {' - assert_command dfx stop + dfx_new hello + + IGNORED_MESSAGE="Ignoring the 'defaults' field in dfx.json because project settings never apply to the shared network." + APPLY_SETTINGS_MESSAGE="To apply these settings to the shared network, define them in .*/config-root/.config/dfx/networks.json like so" + + jq 'del(.defaults)' dfx.json | sponge dfx.json + jq '.defaults.bitcoin.enabled=true' dfx.json | sponge dfx.json + assert_command dfx start --background + assert_contains "$IGNORED_MESSAGE" + assert_match "$APPLY_SETTINGS_MESSAGE" + assert_contains '"bitcoin": {' + assert_not_contains '"replica"' + assert_not_contains '"canister_http"' + assert_command dfx stop + + jq 'del(.defaults)' dfx.json | sponge dfx.json + jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json + assert_command dfx start --background + assert_contains "$IGNORED_MESSAGE" + assert_match "$APPLY_SETTINGS_MESSAGE" + assert_not_contains '"bitcoin"' + assert_contains '"replica": {' + assert_not_contains '"canister_http"' + assert_command dfx stop + + jq 'del(.defaults)' dfx.json | sponge dfx.json + jq '.defaults.canister_http.enabled=false' dfx.json | sponge dfx.json + assert_command dfx start --background + assert_contains "$IGNORED_MESSAGE" + assert_match "$APPLY_SETTINGS_MESSAGE" + assert_not_contains '"bitcoin"' + assert_not_contains '"replica"' + assert_contains '"canister_http": {' + assert_command dfx stop + + jq 'del(.defaults)' dfx.json | sponge dfx.json + jq '.defaults.bitcoin.enabled=true' dfx.json | sponge dfx.json + jq '.defaults.replica.log_level="info"' dfx.json | sponge dfx.json + jq '.defaults.canister_http.enabled=false' dfx.json | sponge dfx.json + assert_command dfx start --background + assert_contains "$IGNORED_MESSAGE" + assert_match "$APPLY_SETTINGS_MESSAGE" + assert_contains '"bitcoin": {' + assert_contains '"replica": {' + assert_contains '"canister_http": {' + assert_command dfx stop } @test "dfx starts replica with correct log level - project defaults" { - dfx_new - jq '.defaults.replica.log_level="warning"' dfx.json | sponge dfx.json - define_project_network + dfx_new + jq '.defaults.replica.log_level="warning"' dfx.json | sponge dfx.json + define_project_network - assert_command dfx start --background --verbose - assert_match "log level: Warning" - assert_command dfx stop + assert_command dfx start --background --verbose + assert_match "log level: Warning" + assert_command dfx stop - jq '.defaults.replica.log_level="critical"' dfx.json | sponge dfx.json - assert_command dfx start --background --verbose --clean - assert_match "log level: Critical" + jq '.defaults.replica.log_level="critical"' dfx.json | sponge dfx.json + assert_command dfx start --background --verbose --clean + assert_match "log level: Critical" } @test "dfx starts replica with correct log level - local network" { - dfx_new - jq '.networks.local.replica.log_level="warning"' dfx.json | sponge dfx.json - define_project_network + dfx_new + jq '.networks.local.replica.log_level="warning"' dfx.json | sponge dfx.json + define_project_network - assert_command dfx start --background --verbose - assert_match "log level: Warning" - assert_command dfx stop + assert_command dfx start --background --verbose + assert_match "log level: Warning" + assert_command dfx stop - jq '.networks.local.replica.log_level="critical"' dfx.json | sponge dfx.json - assert_command dfx start --background --verbose --clean - assert_match "log level: Critical" + jq '.networks.local.replica.log_level="critical"' dfx.json | sponge dfx.json + assert_command dfx start --background --verbose --clean + assert_match "log level: Critical" } @test "dfx starts replica with correct log level - shared network" { - dfx_new - create_networks_json - jq '.local.replica.log_level="warning"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + dfx_new + create_networks_json + jq '.local.replica.log_level="warning"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background --verbose - assert_match "log level: Warning" - assert_command dfx stop + assert_command dfx start --background --verbose + assert_match "log level: Warning" + assert_command dfx stop - jq '.local.replica.log_level="critical"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" - assert_command dfx start --background --verbose --clean - assert_match "log level: Critical" + jq '.local.replica.log_level="critical"' "$E2E_NETWORKS_JSON" | sponge "$E2E_NETWORKS_JSON" + assert_command dfx start --background --verbose --clean + assert_match "log level: Critical" } @test "debug print statements work with default log level" { - dfx_new - install_asset print - dfx_start 2>stderr.txt - assert_command dfx deploy - assert_command dfx canister call e2e_project hello - sleep 2 - run tail -2 stderr.txt - assert_match "Hello, World! from DFINITY" + dfx_new + install_asset print + dfx_start 2>stderr.txt + assert_command dfx deploy + assert_command dfx canister call e2e_project hello + sleep 2 + run tail -2 stderr.txt + assert_match "Hello, World! from DFINITY" } @test "modifying networks.json requires --clean on restart" { - dfx_start - dfx stop - assert_command dfx_start - dfx stop - jq -n '.local.replica.log_level="warning"' > "$E2E_NETWORKS_JSON" - assert_command_fail dfx_start - assert_contains "The network configuration was changed. Rerun with \`--clean\`." - assert_command dfx_start --force - dfx stop - assert_command dfx_start --clean + dfx_start + dfx stop + assert_command dfx_start + dfx stop + jq -n '.local.replica.log_level="warning"' > "$E2E_NETWORKS_JSON" + assert_command_fail dfx_start + assert_contains "The network configuration was changed. Rerun with \`--clean\`." + assert_command dfx_start --force + dfx stop + assert_command dfx_start --clean } @test "project-local networks require --clean if dfx.json was updated" { - dfx_new - define_project_network - dfx_start - dfx stop - assert_command dfx_start - dfx stop - jq -n '.local.replica.log_level="warning"' > "$E2E_NETWORKS_JSON" - assert_command dfx_start - dfx stop - jq '.networks.local.replica.log_level="warning"' dfx.json | sponge dfx.json - assert_command_fail dfx_start - assert_contains "The network configuration was changed. Rerun with \`--clean\`." - assert_command dfx_start --force - dfx stop - assert_command dfx_start --clean + dfx_new + define_project_network + dfx_start + dfx stop + assert_command dfx_start + dfx stop + jq -n '.local.replica.log_level="warning"' > "$E2E_NETWORKS_JSON" + assert_command dfx_start + dfx stop + jq '.networks.local.replica.log_level="warning"' dfx.json | sponge dfx.json + assert_command_fail dfx_start + assert_contains "The network configuration was changed. Rerun with \`--clean\`." + assert_command dfx_start --force + dfx stop + assert_command dfx_start --clean } @test "flags count as configuration modification and require --clean" { - dfx_start - dfx stop - assert_command_fail dfx_start --enable-bitcoin - assert_contains "The network configuration was changed. Rerun with \`--clean\`." - assert_command dfx_start --enable-bitcoin --clean - dfx stop - assert_command dfx_start --enable-bitcoin - dfx stop - assert_command_fail dfx_start - assert_contains "The network configuration was changed. Rerun with \`--clean\`." - assert_command dfx_start --force + dfx_start + dfx stop + assert_command_fail dfx_start --enable-bitcoin + assert_contains "The network configuration was changed. Rerun with \`--clean\`." + assert_command dfx_start --enable-bitcoin --clean + dfx stop + assert_command dfx_start --enable-bitcoin + dfx stop + assert_command_fail dfx_start + assert_contains "The network configuration was changed. Rerun with \`--clean\`." + assert_command dfx_start --force } @test "dfx start then ctrl-c won't hang and panic but stop actors quickly" { - assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/ctrl_c_right_after_dfx_start.exp" + assert_command "${BATS_TEST_DIRNAME}/../assets/expect_scripts/ctrl_c_right_after_dfx_start.exp" } diff --git a/e2e/tests-dfx/subcommands.bash b/e2e/tests-dfx/subcommands.bash index 92e6f4c65a..9591922c1d 100644 --- a/e2e/tests-dfx/subcommands.bash +++ b/e2e/tests-dfx/subcommands.bash @@ -3,23 +3,23 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new + dfx_new } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "--identity and --network are stil accepted as prefix" { - install_asset whoami - dfx_start - dfx deploy - dfx identity new alice --storage-mode plaintext - assert_command dfx --identity alice canister --network local call whoami whoami - assert_match "$(dfx --identity alice identity get-principal)" - assert_match "$(dfx identity get-principal --identity alice)" + install_asset whoami + dfx_start + dfx deploy + dfx identity new alice --storage-mode plaintext + assert_command dfx --identity alice canister --network local call whoami whoami + assert_match "$(dfx --identity alice identity get-principal)" + assert_match "$(dfx identity get-principal --identity alice)" } diff --git a/e2e/tests-dfx/update_settings.bash b/e2e/tests-dfx/update_settings.bash index ff34082756..8ad100f00b 100644 --- a/e2e/tests-dfx/update_settings.bash +++ b/e2e/tests-dfx/update_settings.bash @@ -3,491 +3,491 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "set freezing threshold" { - dfx_start - assert_command dfx deploy hello_backend + dfx_start + assert_command dfx deploy hello_backend - # trying to set threshold to 1T seconds, which should not work because it's likely a mistake - assert_command_fail dfx canister update-settings hello_backend --freezing-threshold 100000000000 - assert_match "SECONDS" # error message pointing to the error + # trying to set threshold to 1T seconds, which should not work because it's likely a mistake + assert_command_fail dfx canister update-settings hello_backend --freezing-threshold 100000000000 + assert_match "SECONDS" # error message pointing to the error - # with manual override it's ok - assert_command dfx canister update-settings hello_backend --freezing-threshold 100000000000 --confirm-very-long-freezing-threshold + # with manual override it's ok + assert_command dfx canister update-settings hello_backend --freezing-threshold 100000000000 --confirm-very-long-freezing-threshold - # to check if threshold is set correctly we have to un-freeze the canister by adding cycles. Fabricating 100T cycles onto it - assert_command dfx ledger fabricate-cycles --canister hello_backend --t 100 - assert_command dfx canister status hello_backend - assert_match "Freezing threshold: 100_000_000_000" + # to check if threshold is set correctly we have to un-freeze the canister by adding cycles. Fabricating 100T cycles onto it + assert_command dfx ledger fabricate-cycles --canister hello_backend --t 100 + assert_command dfx canister status hello_backend + assert_match "Freezing threshold: 100_000_000_000" } @test "set controller" { - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - - assert_command dfx identity use alice - - dfx_start - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - - dfx canister create hello_backend - dfx build hello_backend - dfx canister install hello_backend - ID=$(dfx canister id hello_backend) - - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller bob --yes - assert_match "Set controller of \"hello_backend\" to: bob" - - # Bob is controller, Alice cannot reinstall - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall - - # Bob can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob - - assert_command dfx identity use bob - # Set controller using canister id and principal - assert_command dfx canister update-settings "$ID" --set-controller "${ALICE_PRINCIPAL}" --yes - assert_match "Set controller of \"${ID}\" to: ${ALICE_PRINCIPAL}" - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall - - # Set controller using combination of name/id and identity/principal - assert_command dfx canister update-settings hello_backend --set-controller "${BOB_PRINCIPAL}" --identity alice --yes - assert_match "Set controller of \"hello_backend\" to: ${BOB_PRINCIPAL}" - - assert_command dfx canister update-settings "${ID}" --set-controller alice --identity bob --yes - assert_match "Set controller of \"${ID}\" to: alice" - - # Set controller using invalid principal/identity fails - assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --yes - assert_match "Identity charlie does not exist" - - # Set controller using invalid canister name/id fails - assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --yes - assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." - - # Fails if no consent is given - echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice - # But works with typing "yes" - echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + + assert_command dfx identity use alice + + dfx_start + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + + dfx canister create hello_backend + dfx build hello_backend + dfx canister install hello_backend + ID=$(dfx canister id hello_backend) + + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller bob --yes + assert_match "Set controller of \"hello_backend\" to: bob" + + # Bob is controller, Alice cannot reinstall + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall + + # Bob can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob + + assert_command dfx identity use bob + # Set controller using canister id and principal + assert_command dfx canister update-settings "$ID" --set-controller "${ALICE_PRINCIPAL}" --yes + assert_match "Set controller of \"${ID}\" to: ${ALICE_PRINCIPAL}" + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall + + # Set controller using combination of name/id and identity/principal + assert_command dfx canister update-settings hello_backend --set-controller "${BOB_PRINCIPAL}" --identity alice --yes + assert_match "Set controller of \"hello_backend\" to: ${BOB_PRINCIPAL}" + + assert_command dfx canister update-settings "${ID}" --set-controller alice --identity bob --yes + assert_match "Set controller of \"${ID}\" to: alice" + + # Set controller using invalid principal/identity fails + assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --yes + assert_match "Identity charlie does not exist" + + # Set controller using invalid canister name/id fails + assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --yes + assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." + + # Fails if no consent is given + echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice + # But works with typing "yes" + echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice } @test "set controller with wallet" { - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob - assert_command dfx identity use alice + assert_command dfx identity use alice - dfx_start - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB_WALLET=$(dfx identity get-wallet --identity bob) + dfx_start + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB_WALLET=$(dfx identity get-wallet --identity bob) - dfx canister create hello_backend --wallet "${ALICE_WALLET}" - dfx build hello_backend - dfx canister install hello_backend --wallet "${ALICE_WALLET}" - ID=$(dfx canister id hello_backend) + dfx canister create hello_backend --wallet "${ALICE_WALLET}" + dfx build hello_backend + dfx canister install hello_backend --wallet "${ALICE_WALLET}" + ID=$(dfx canister id hello_backend) - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" --yes - assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" --yes + assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" - # Bob is controller, Alice cannot reinstall - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${ALICE_WALLET}" + # Bob is controller, Alice cannot reinstall + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${ALICE_WALLET}" - # Bob can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" + # Bob can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" - assert_command dfx identity use bob - # Set controller using canister id and principal - assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --wallet "${BOB_WALLET}" --yes - assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${BOB_WALLET}" + assert_command dfx identity use bob + # Set controller using canister id and principal + assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --wallet "${BOB_WALLET}" --yes + assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${BOB_WALLET}" - # Set controller using combination of name/id and identity/principal - assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" --yes - assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" + # Set controller using combination of name/id and identity/principal + assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" --yes + assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" - assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --identity bob --wallet "${BOB_WALLET}" --yes - assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" + assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --identity bob --wallet "${BOB_WALLET}" --yes + assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" - # Set controller using invalid principal/identity fails - assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --wallet "${ALICE_WALLET}" --yes - assert_match "Identity charlie does not exist" + # Set controller using invalid principal/identity fails + assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --wallet "${ALICE_WALLET}" --yes + assert_match "Identity charlie does not exist" - # Set controller using invalid canister name/id fails - assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --wallet "${ALICE_WALLET}" --yes - assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." + # Set controller using invalid canister name/id fails + assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --wallet "${ALICE_WALLET}" --yes + assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." - # Fails if no consent is given - echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" - # But works with typing "yes" - echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" + # Fails if no consent is given + echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" + # But works with typing "yes" + echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" } @test "set controller with wallet 0.7.2" { - use_wallet_wasm 0.7.2 + use_wallet_wasm 0.7.2 - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob - assert_command dfx identity use alice + assert_command dfx identity use alice - dfx_start - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB_WALLET=$(dfx identity get-wallet --identity bob) + dfx_start + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB_WALLET=$(dfx identity get-wallet --identity bob) - dfx canister create hello_backend --wallet "${ALICE_WALLET}" - dfx build hello_backend - dfx canister install hello_backend --wallet "${ALICE_WALLET}" - ID=$(dfx canister id hello_backend) + dfx canister create hello_backend --wallet "${ALICE_WALLET}" + dfx build hello_backend + dfx canister install hello_backend --wallet "${ALICE_WALLET}" + ID=$(dfx canister id hello_backend) - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" --yes - assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" --yes + assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" - # Bob is controller, Alice cannot reinstall - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${ALICE_WALLET}" + # Bob is controller, Alice cannot reinstall + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${ALICE_WALLET}" - # Bob can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" + # Bob can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" - assert_command dfx identity use bob - # Set controller using canister id and principal - assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --wallet "${BOB_WALLET}" --yes - assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${BOB_WALLET}" + assert_command dfx identity use bob + # Set controller using canister id and principal + assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --wallet "${BOB_WALLET}" --yes + assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall --wallet "${BOB_WALLET}" - # Set controller using combination of name/id and identity/principal - assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" --yes - assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" + # Set controller using combination of name/id and identity/principal + assert_command dfx canister update-settings hello_backend --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" --yes + assert_match "Set controller of \"hello_backend\" to: ${BOB_WALLET}" - assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --identity bob --wallet "${BOB_WALLET}" --yes - assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" + assert_command dfx canister update-settings "${ID}" --set-controller "${ALICE_WALLET}" --identity bob --wallet "${BOB_WALLET}" --yes + assert_match "Set controller of \"${ID}\" to: ${ALICE_WALLET}" - # Set controller using invalid principal/identity fails - assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --yes - assert_match "Identity charlie does not exist" + # Set controller using invalid principal/identity fails + assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --yes + assert_match "Identity charlie does not exist" - # Set controller using invalid canister name/id fails - assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --yes - assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." + # Set controller using invalid canister name/id fails + assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --yes + assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." - # Fails if no consent is given - echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" - # But works with typing "yes" - echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" + # Fails if no consent is given + echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" + # But works with typing "yes" + echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_WALLET}" --identity alice --wallet "${ALICE_WALLET}" } @test "set controller without wallet but using wallet 0.7.2" { - use_wallet_wasm 0.7.2 - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - - assert_command dfx identity use alice - - dfx_start - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - - dfx canister create hello_backend - dfx canister update-settings hello_backend --add-controller "$ALICE_PRINCIPAL" --wallet "$(dfx identity get-wallet)" - dfx build hello_backend - dfx canister install hello_backend - ID=$(dfx canister id hello_backend) - - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller bob --yes - assert_match "Set controller of \"hello_backend\" to: bob" - - # Bob is controller, Alice cannot reinstall - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall - - # Bob can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob - - assert_command dfx identity use bob - # Set controller using canister id and principal - assert_command dfx canister update-settings "$ID" --set-controller "${ALICE_PRINCIPAL}" --yes - assert_match "Set controller of \"${ID}\" to: ${ALICE_PRINCIPAL}" - echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall - - # Set controller using combination of name/id and identity/principal - assert_command dfx canister update-settings hello_backend --set-controller "${BOB_PRINCIPAL}" --identity alice --yes - assert_match "Set controller of \"hello_backend\" to: ${BOB_PRINCIPAL}" - - assert_command dfx canister update-settings "${ID}" --set-controller alice --identity bob --yes - assert_match "Set controller of \"${ID}\" to: alice" - - # Set controller using invalid principal/identity fails - assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --yes - assert_match "Identity charlie does not exist" - - # Set controller using invalid canister name/id fails - assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --yes - assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." - - # Fails if no consent is given - echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice - # But works with typing "yes" - echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice + use_wallet_wasm 0.7.2 + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + + assert_command dfx identity use alice + + dfx_start + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + + dfx canister create hello_backend + dfx canister update-settings hello_backend --add-controller "$ALICE_PRINCIPAL" --wallet "$(dfx identity get-wallet)" + dfx build hello_backend + dfx canister install hello_backend + ID=$(dfx canister id hello_backend) + + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller bob --yes + assert_match "Set controller of \"hello_backend\" to: bob" + + # Bob is controller, Alice cannot reinstall + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall + + # Bob can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob + + assert_command dfx identity use bob + # Set controller using canister id and principal + assert_command dfx canister update-settings "$ID" --set-controller "${ALICE_PRINCIPAL}" --yes + assert_match "Set controller of \"${ID}\" to: ${ALICE_PRINCIPAL}" + echo "yes" | assert_command_fail dfx canister install hello_backend -m reinstall + + # Set controller using combination of name/id and identity/principal + assert_command dfx canister update-settings hello_backend --set-controller "${BOB_PRINCIPAL}" --identity alice --yes + assert_match "Set controller of \"hello_backend\" to: ${BOB_PRINCIPAL}" + + assert_command dfx canister update-settings "${ID}" --set-controller alice --identity bob --yes + assert_match "Set controller of \"${ID}\" to: alice" + + # Set controller using invalid principal/identity fails + assert_command_fail dfx canister update-settings hello_backend --set-controller charlie --identity alice --yes + assert_match "Identity charlie does not exist" + + # Set controller using invalid canister name/id fails + assert_command_fail dfx canister update-settings hello_assets --set-controller bob --identity alice --yes + assert_match "Cannot find canister id. Please issue 'dfx canister create hello_assets'." + + # Fails if no consent is given + echo "no" | assert_command_fail dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice + # But works with typing "yes" + echo "yes" | assert_command dfx canister update-settings "${ID}" --set-controller "${BOB_PRINCIPAL}" --identity alice } @test "set multiple controllers" { - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob - assert_command dfx identity use alice + assert_command dfx identity use alice - dfx_start - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - # awk step is to avoid trailing space - PRINCIPALS_SORTED=$(echo "$ALICE_PRINCIPAL" "$BOB_PRINCIPAL" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) + dfx_start + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + # awk step is to avoid trailing space + PRINCIPALS_SORTED=$(echo "$ALICE_PRINCIPAL" "$BOB_PRINCIPAL" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) - dfx canister create hello_backend - dfx build hello_backend - dfx canister install hello_backend - ID=$(dfx canister id hello_backend) + dfx canister create hello_backend + dfx build hello_backend + dfx canister install hello_backend + ID=$(dfx canister id hello_backend) - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_PRINCIPAL}" --set-controller "${BOB_PRINCIPAL}" - assert_match "Set controllers of \"hello_backend\" to: $PRINCIPALS_SORTED" + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_PRINCIPAL}" --set-controller "${BOB_PRINCIPAL}" + assert_match "Set controllers of \"hello_backend\" to: $PRINCIPALS_SORTED" - # Both can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob + # Both can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob - assert_command dfx canister info hello_backend - assert_match "Controllers: ${PRINCIPALS_SORTED}" + assert_command dfx canister info hello_backend + assert_match "Controllers: ${PRINCIPALS_SORTED}" } @test "set multiple controllers with wallet" { - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob - assert_command dfx identity use alice + assert_command dfx identity use alice - dfx_start - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB_WALLET=$(dfx identity get-wallet --identity bob) - # awk step is to avoid trailing space - WALLETS_SORTED=$(echo "${ALICE_WALLET}" "${BOB_WALLET}" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) + dfx_start + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB_WALLET=$(dfx identity get-wallet --identity bob) + # awk step is to avoid trailing space + WALLETS_SORTED=$(echo "${ALICE_WALLET}" "${BOB_WALLET}" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) - dfx canister create hello_backend - dfx build hello_backend - dfx canister install hello_backend - ID=$(dfx canister id hello_backend) + dfx canister create hello_backend + dfx build hello_backend + dfx canister install hello_backend + ID=$(dfx canister id hello_backend) - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_WALLET}" --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" - assert_match "Set controllers of \"hello_backend\" to: ${WALLETS_SORTED}" + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_WALLET}" --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" + assert_match "Set controllers of \"hello_backend\" to: ${WALLETS_SORTED}" - # Both can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice --wallet "${ALICE_WALLET}" - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" + # Both can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice --wallet "${ALICE_WALLET}" + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" - assert_command dfx canister info hello_backend - assert_match "Controllers: ${WALLETS_SORTED}" + assert_command dfx canister info hello_backend + assert_match "Controllers: ${WALLETS_SORTED}" } @test "set multiple controllers even with wallet 0.7.2" { - use_wallet_wasm 0.7.2 - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - - assert_command dfx identity use alice - - dfx_start - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB_WALLET=$(dfx identity get-wallet --identity bob) - # awk step is to avoid trailing space - WALLETS_SORTED=$(echo "${ALICE_WALLET}" "${BOB_WALLET}" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) - - dfx canister create hello_backend - dfx build hello_backend - dfx canister install hello_backend --wallet "${ALICE_WALLET}" - ID=$(dfx canister id hello_backend) - - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_WALLET}" --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" - assert_match "Set controllers of \"hello_backend\" to: $WALLETS_SORTED" - - # Both can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice --wallet "${ALICE_WALLET}" - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" - - assert_command dfx canister info hello_backend - assert_match "Controllers: ${WALLETS_SORTED}" + use_wallet_wasm 0.7.2 + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + + assert_command dfx identity use alice + + dfx_start + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB_WALLET=$(dfx identity get-wallet --identity bob) + # awk step is to avoid trailing space + WALLETS_SORTED=$(echo "${ALICE_WALLET}" "${BOB_WALLET}" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) + + dfx canister create hello_backend + dfx build hello_backend + dfx canister install hello_backend --wallet "${ALICE_WALLET}" + ID=$(dfx canister id hello_backend) + + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_WALLET}" --set-controller "${BOB_WALLET}" --wallet "${ALICE_WALLET}" + assert_match "Set controllers of \"hello_backend\" to: $WALLETS_SORTED" + + # Both can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice --wallet "${ALICE_WALLET}" + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob --wallet "${BOB_WALLET}" + + assert_command dfx canister info hello_backend + assert_match "Controllers: ${WALLETS_SORTED}" } @test "set multiple controllers without wallet but using wallet 0.7.2" { - use_wallet_wasm 0.7.2 - # Create two identities - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - - assert_command dfx identity use alice - - dfx_start - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - # awk step is to avoid trailing space - PRINCIPALS_SORTED=$(echo "$ALICE_PRINCIPAL" "$BOB_PRINCIPAL" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) - - dfx canister create hello_backend - dfx canister update-settings hello_backend --add-controller "$ALICE_PRINCIPAL" --wallet "$(dfx identity get-wallet)" - dfx build hello_backend - dfx canister install hello_backend - ID=$(dfx canister id hello_backend) - - # Set controller using canister name and identity name - assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_PRINCIPAL}" --set-controller "${BOB_PRINCIPAL}" - assert_match "Set controllers of \"hello_backend\" to: $PRINCIPALS_SORTED" - - # Both can reinstall - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice - echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob - - assert_command dfx canister info hello_backend - assert_match "Controllers: ${PRINCIPALS_SORTED}" + use_wallet_wasm 0.7.2 + # Create two identities + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + + assert_command dfx identity use alice + + dfx_start + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + # awk step is to avoid trailing space + PRINCIPALS_SORTED=$(echo "$ALICE_PRINCIPAL" "$BOB_PRINCIPAL" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s",$1,$2}' ) + + dfx canister create hello_backend + dfx canister update-settings hello_backend --add-controller "$ALICE_PRINCIPAL" --wallet "$(dfx identity get-wallet)" + dfx build hello_backend + dfx canister install hello_backend + ID=$(dfx canister id hello_backend) + + # Set controller using canister name and identity name + assert_command dfx canister update-settings hello_backend --set-controller "${ALICE_PRINCIPAL}" --set-controller "${BOB_PRINCIPAL}" + assert_match "Set controllers of \"hello_backend\" to: $PRINCIPALS_SORTED" + + # Both can reinstall + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity alice + echo "yes" | assert_command dfx canister install hello_backend -m reinstall --identity bob + + assert_command dfx canister info hello_backend + assert_match "Controllers: ${PRINCIPALS_SORTED}" } @test "add controller to existing canister" { - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - assert_command dfx identity new --storage-mode plaintext charlie - - dfx identity use alice - dfx_start - - ALICE=$(dfx identity get-principal --identity alice) - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB=$(dfx identity get-principal --identity bob) - CHARLIE=$(dfx identity get-principal --identity charlie) - SORTED=$(echo "$ALICE" "$ALICE_WALLET" "$BOB" "$CHARLIE" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s %s %s",$1,$2,$3,$4}' ) - - dfx canister create hello_backend - dfx build hello_backend - dfx canister install hello_backend - - # make bob a controller - assert_command dfx canister update-settings hello_backend --add-controller bob - # check that bob has the authority to make someone else a controller - assert_command dfx canister update-settings hello_backend --add-controller charlie --identity bob - assert_command dfx canister info hello_backend - assert_match "Controllers: $SORTED" + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + assert_command dfx identity new --storage-mode plaintext charlie + + dfx identity use alice + dfx_start + + ALICE=$(dfx identity get-principal --identity alice) + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB=$(dfx identity get-principal --identity bob) + CHARLIE=$(dfx identity get-principal --identity charlie) + SORTED=$(echo "$ALICE" "$ALICE_WALLET" "$BOB" "$CHARLIE" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s %s %s",$1,$2,$3,$4}' ) + + dfx canister create hello_backend + dfx build hello_backend + dfx canister install hello_backend + + # make bob a controller + assert_command dfx canister update-settings hello_backend --add-controller bob + # check that bob has the authority to make someone else a controller + assert_command dfx canister update-settings hello_backend --add-controller charlie --identity bob + assert_command dfx canister info hello_backend + assert_match "Controllers: $SORTED" } @test "add controller to all canisters" { - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - assert_command dfx identity new --storage-mode plaintext charlie - - dfx identity use alice - dfx_start - - ALICE=$(dfx identity get-principal --identity alice) - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB=$(dfx identity get-principal --identity bob) - CHARLIE=$(dfx identity get-principal --identity charlie) - SORTED=$(echo "$ALICE" "$ALICE_WALLET" "$BOB" "$CHARLIE" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s %s %s",$1,$2,$3,$4}' ) - - dfx canister create --all - dfx build --all - dfx canister install --all - - # make bob a controller - assert_command dfx canister update-settings --all --add-controller bob - # check that bob has the authority to make someone else a controller - assert_command dfx canister update-settings --all --add-controller charlie --identity bob - assert_command dfx canister info hello_backend - assert_match "Controllers: $SORTED" + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + assert_command dfx identity new --storage-mode plaintext charlie + + dfx identity use alice + dfx_start + + ALICE=$(dfx identity get-principal --identity alice) + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB=$(dfx identity get-principal --identity bob) + CHARLIE=$(dfx identity get-principal --identity charlie) + SORTED=$(echo "$ALICE" "$ALICE_WALLET" "$BOB" "$CHARLIE" | tr " " "\n" | sort | tr "\n" " " | awk '{printf "%s %s %s %s",$1,$2,$3,$4}' ) + + dfx canister create --all + dfx build --all + dfx canister install --all + + # make bob a controller + assert_command dfx canister update-settings --all --add-controller bob + # check that bob has the authority to make someone else a controller + assert_command dfx canister update-settings --all --add-controller charlie --identity bob + assert_command dfx canister info hello_backend + assert_match "Controllers: $SORTED" } @test "update settings by canister id, when canister id is not known to the project" { - dfx_start - dfx deploy + dfx_start + dfx deploy - CANISTER_ID=$(dfx canister id hello_backend) + CANISTER_ID=$(dfx canister id hello_backend) - rm .dfx/local/canister_ids.json - jq '.canisters={}' dfx.json | sponge dfx.json + rm .dfx/local/canister_ids.json + jq '.canisters={}' dfx.json | sponge dfx.json - assert_command dfx canister status "$CANISTER_ID" - assert_match 'Memory allocation: 0' - assert_match 'Compute allocation: 0' - assert_match 'Freezing threshold: 2_592_000' + assert_command dfx canister status "$CANISTER_ID" + assert_match 'Memory allocation: 0' + assert_match 'Compute allocation: 0' + assert_match 'Freezing threshold: 2_592_000' - dfx canister update-settings --memory-allocation 2GB "$CANISTER_ID" - assert_command dfx canister status "$CANISTER_ID" - assert_match 'Memory allocation: 2_000_000_000' - assert_match 'Compute allocation: 0' - assert_match 'Freezing threshold: 2_592_000' + dfx canister update-settings --memory-allocation 2GB "$CANISTER_ID" + assert_command dfx canister status "$CANISTER_ID" + assert_match 'Memory allocation: 2_000_000_000' + assert_match 'Compute allocation: 0' + assert_match 'Freezing threshold: 2_592_000' - # This is just checking that update-settings leaves the previous value - # (of memory allocation) alone when setting something else + # This is just checking that update-settings leaves the previous value + # (of memory allocation) alone when setting something else - # Compute allocations are temporarily disabled. - # See https://dfinity.atlassian.net/browse/RUN-314 - # dfx canister update-settings --compute-allocation 1 "$CANISTER_ID" + # Compute allocations are temporarily disabled. + # See https://dfinity.atlassian.net/browse/RUN-314 + # dfx canister update-settings --compute-allocation 1 "$CANISTER_ID" - dfx canister update-settings --freezing-threshold 172 "$CANISTER_ID" - assert_command dfx canister status "$CANISTER_ID" - assert_match 'Memory allocation: 2_000_000_000' - # assert_match 'Compute allocation: 4' - assert_match 'Freezing threshold: 172' + dfx canister update-settings --freezing-threshold 172 "$CANISTER_ID" + assert_command dfx canister status "$CANISTER_ID" + assert_match 'Memory allocation: 2_000_000_000' + # assert_match 'Compute allocation: 4' + assert_match 'Freezing threshold: 172' } @test "remove controller" { - assert_command dfx identity new --storage-mode plaintext alice - assert_command dfx identity new --storage-mode plaintext bob - ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) - BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) - dfx identity use alice - - dfx_start - dfx deploy - WALLET_PRINCIPAL=$(dfx identity get-wallet) - - assert_command dfx canister update-settings hello_backend --add-controller "${BOB_PRINCIPAL}" - assert_command dfx canister info hello_backend - assert_contains "${BOB_PRINCIPAL}" - assert_command dfx canister update-settings hello_backend --remove-controller "${BOB_PRINCIPAL}" - assert_command dfx canister info hello_backend - assert_not_contains "${BOB_PRINCIPAL}" - - # Cannot remove own controller without extra consent - echo "no" | assert_command_fail dfx canister update-settings hello_backend --remove-controller "${ALICE_PRINCIPAL}" - assert_command dfx canister info hello_backend - assert_contains "${ALICE_PRINCIPAL}" - echo "yes" | assert_command dfx canister update-settings hello_backend --remove-controller "${ALICE_PRINCIPAL}" - assert_command dfx canister info hello_backend - assert_not_contains "${ALICE_PRINCIPAL}" - - # Cannot remove wallet controller without extra consent - echo "no" | assert_command_fail dfx canister update-settings hello_backend --remove-controller "${WALLET_PRINCIPAL}" --wallet "${WALLET_PRINCIPAL}" - assert_command dfx canister info hello_backend - assert_contains "${WALLET_PRINCIPAL}" - echo "yes" | assert_command dfx canister update-settings hello_backend --remove-controller "${WALLET_PRINCIPAL}" --wallet "${WALLET_PRINCIPAL}" - assert_command dfx canister info hello_backend - assert_not_contains "${WALLET_PRINCIPAL}" + assert_command dfx identity new --storage-mode plaintext alice + assert_command dfx identity new --storage-mode plaintext bob + ALICE_PRINCIPAL=$(dfx identity get-principal --identity alice) + BOB_PRINCIPAL=$(dfx identity get-principal --identity bob) + dfx identity use alice + + dfx_start + dfx deploy + WALLET_PRINCIPAL=$(dfx identity get-wallet) + + assert_command dfx canister update-settings hello_backend --add-controller "${BOB_PRINCIPAL}" + assert_command dfx canister info hello_backend + assert_contains "${BOB_PRINCIPAL}" + assert_command dfx canister update-settings hello_backend --remove-controller "${BOB_PRINCIPAL}" + assert_command dfx canister info hello_backend + assert_not_contains "${BOB_PRINCIPAL}" + + # Cannot remove own controller without extra consent + echo "no" | assert_command_fail dfx canister update-settings hello_backend --remove-controller "${ALICE_PRINCIPAL}" + assert_command dfx canister info hello_backend + assert_contains "${ALICE_PRINCIPAL}" + echo "yes" | assert_command dfx canister update-settings hello_backend --remove-controller "${ALICE_PRINCIPAL}" + assert_command dfx canister info hello_backend + assert_not_contains "${ALICE_PRINCIPAL}" + + # Cannot remove wallet controller without extra consent + echo "no" | assert_command_fail dfx canister update-settings hello_backend --remove-controller "${WALLET_PRINCIPAL}" --wallet "${WALLET_PRINCIPAL}" + assert_command dfx canister info hello_backend + assert_contains "${WALLET_PRINCIPAL}" + echo "yes" | assert_command dfx canister update-settings hello_backend --remove-controller "${WALLET_PRINCIPAL}" --wallet "${WALLET_PRINCIPAL}" + assert_command dfx canister info hello_backend + assert_not_contains "${WALLET_PRINCIPAL}" } diff --git a/e2e/tests-dfx/upgrade.bash b/e2e/tests-dfx/upgrade.bash index 4bb884bfa1..02bf5a6d5d 100644 --- a/e2e/tests-dfx/upgrade.bash +++ b/e2e/tests-dfx/upgrade.bash @@ -3,47 +3,47 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - stop_webserver - standard_teardown + stop_webserver + standard_teardown } @test "upgrade succeeds" { - latest_version="0.4.7" - latest_version_dir="downloads/dfx/$latest_version/x86_64-$(uname -s | tr '[:upper:]' '[:lower:]')/" - dfx_archive_file_name="dfx-$latest_version.tar.gz" - mkdir -p "$latest_version_dir" - cp "$(which dfx)" . - version=$(./dfx --version) - tar -czf "$latest_version_dir/$dfx_archive_file_name" dfx - echo '{ - "tags": { - "latest": "0.4.7" - }, - "versions": [ - "0.4.3", - "0.4.4", - "0.4.7" - ] - }' > manifest.json - - start_webserver - - # Override current version to force upgrade - assert_command ./dfx upgrade \ - --current-version 0.4.6 \ - --release-root "http://localhost:$E2E_WEB_SERVER_PORT" - assert_match "Current version: .*" - assert_match "Fetching manifest .*" - assert_match "New version available: .*" - - assert_command ./dfx upgrade \ - --release-root "http://localhost:$E2E_WEB_SERVER_PORT" - assert_match "Already up to date" - - assert_command ./dfx --version - assert_contains "$version" + latest_version="0.4.7" + latest_version_dir="downloads/dfx/$latest_version/x86_64-$(uname -s | tr '[:upper:]' '[:lower:]')/" + dfx_archive_file_name="dfx-$latest_version.tar.gz" + mkdir -p "$latest_version_dir" + cp "$(which dfx)" . + version=$(./dfx --version) + tar -czf "$latest_version_dir/$dfx_archive_file_name" dfx + echo '{ + "tags": { + "latest": "0.4.7" + }, + "versions": [ + "0.4.3", + "0.4.4", + "0.4.7" + ] + }' > manifest.json + + start_webserver + + # Override current version to force upgrade + assert_command ./dfx upgrade \ + --current-version 0.4.6 \ + --release-root "http://localhost:$E2E_WEB_SERVER_PORT" + assert_match "Current version: .*" + assert_match "Fetching manifest .*" + assert_match "New version available: .*" + + assert_command ./dfx upgrade \ + --release-root "http://localhost:$E2E_WEB_SERVER_PORT" + assert_match "Already up to date" + + assert_command ./dfx --version + assert_contains "$version" } diff --git a/e2e/tests-dfx/upgrade_check.bash b/e2e/tests-dfx/upgrade_check.bash index 52641c7f0f..f4d93fc025 100644 --- a/e2e/tests-dfx/upgrade_check.bash +++ b/e2e/tests-dfx/upgrade_check.bash @@ -3,15 +3,15 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "safe upgrade by adding a new stable variable" { @@ -26,41 +26,41 @@ teardown() { } @test "changing stable variable from Int to Nat is not allowed" { - install_asset upgrade - dfx_start - dfx deploy - dfx canister call hello_backend inc '()' - jq '.canisters.hello_backend.main="v2_bad.mo"' dfx.json | sponge dfx.json - echo yes | ( - assert_command dfx deploy - assert_match "Stable interface compatibility check failed" - ) - assert_command dfx canister call hello_backend read '()' - assert_match "(0 : nat)" + install_asset upgrade + dfx_start + dfx deploy + dfx canister call hello_backend inc '()' + jq '.canisters.hello_backend.main="v2_bad.mo"' dfx.json | sponge dfx.json + echo yes | ( + assert_command dfx deploy + assert_match "Stable interface compatibility check failed" + ) + assert_command dfx canister call hello_backend read '()' + assert_match "(0 : nat)" } @test "changing stable variable from Int to Nat with reinstall is allowed" { - install_asset upgrade - dfx_start - dfx deploy - dfx canister call hello_backend inc '()' - jq '.canisters.hello_backend.main="v2_bad.mo"' dfx.json | sponge dfx.json - dfx build - echo yes | dfx canister install hello_backend --mode=reinstall - assert_command dfx canister call hello_backend read '()' - assert_match "(0 : nat)" + install_asset upgrade + dfx_start + dfx deploy + dfx canister call hello_backend inc '()' + jq '.canisters.hello_backend.main="v2_bad.mo"' dfx.json | sponge dfx.json + dfx build + echo yes | dfx canister install hello_backend --mode=reinstall + assert_command dfx canister call hello_backend read '()' + assert_match "(0 : nat)" } @test "warning for changing method name" { - install_asset upgrade - dfx_start - dfx deploy - dfx canister call hello_backend inc '()' - jq '.canisters.hello_backend.main="v3_bad.mo"' dfx.json | sponge dfx.json - echo yes | ( - assert_command dfx deploy - assert_match "Candid interface compatibility check failed" - ) - assert_command dfx canister call hello_backend read2 '()' - assert_match "(1 : int)" + install_asset upgrade + dfx_start + dfx deploy + dfx canister call hello_backend inc '()' + jq '.canisters.hello_backend.main="v3_bad.mo"' dfx.json | sponge dfx.json + echo yes | ( + assert_command dfx deploy + assert_match "Candid interface compatibility check failed" + ) + assert_command dfx canister call hello_backend read2 '()' + assert_match "(1 : int)" } diff --git a/e2e/tests-dfx/usage.bash b/e2e/tests-dfx/usage.bash index bf3246face..96b9f5aada 100644 --- a/e2e/tests-dfx/usage.bash +++ b/e2e/tests-dfx/usage.bash @@ -1,13 +1,13 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "dfx help succeeds" { @@ -19,21 +19,21 @@ teardown() { } @test "using an invalid command fails" { - run dfx blurp - if [[ $status -eq 0 ]]; then - echo "$@" >&2 - exit 1 - fi + run dfx blurp + if [[ $status -eq 0 ]]; then + echo "$@" >&2 + exit 1 + fi } @test "returns the right error if not in a project" { - assert_command_fail dfx build - assert_match "Cannot find dfx configuration file in the current working directory. Did you forget to create one?" + assert_command_fail dfx build + assert_match "Cannot find dfx configuration file in the current working directory. Did you forget to create one?" - dfx new t --no-frontend - cd t - dfx_start - dfx canister create --all - assert_command dfx build + dfx new t --no-frontend + cd t + dfx_start + dfx canister create --all + assert_command dfx build } diff --git a/e2e/tests-dfx/usage_env.bash b/e2e/tests-dfx/usage_env.bash index cd000baf37..7cd19f6af5 100644 --- a/e2e/tests-dfx/usage_env.bash +++ b/e2e/tests-dfx/usage_env.bash @@ -3,47 +3,47 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - standard_teardown + standard_teardown } @test "dfx config root env var stores identity & cache" { - use_test_specific_cache_root # Because this test depends on a clean cache state - - #identity - dfx identity new --storage-mode plaintext alice - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" - assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" - - assert_command_fail head "$HOME/.config/dfx/identity/alice/identity.pem" - assert_command_fail head "$HOME/.config/dfx/identity/default/identity.pem" + use_test_specific_cache_root # Because this test depends on a clean cache state + + #identity + dfx identity new --storage-mode plaintext alice + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/alice/identity.pem" + assert_command head "$DFX_CONFIG_ROOT/.config/dfx/identity/default/identity.pem" + + assert_command_fail head "$HOME/.config/dfx/identity/alice/identity.pem" + assert_command_fail head "$HOME/.config/dfx/identity/default/identity.pem" + + #cache + # create a new project to install dfx cache + assert_command_fail ls "$DFX_CACHE_ROOT/.cache/dfinity/versions" + dfx new hello + assert_command ls "$DFX_CACHE_ROOT/.cache/dfinity/versions" + assert_command_fail ls "$HOME/.cache/dfinity/versions" + rm -rf hello + + ( + # use subshell to retain $DFX_CONFIG_ROOT for teardown + # remove configured variable, should use $HOME now + unset DFX_CACHE_ROOT + unset DFX_CONFIG_ROOT + + dfx identity new --storage-mode plaintext bob + assert_command head "$HOME/.config/dfx/identity/bob/identity.pem" + assert_command head "$HOME/.config/dfx/identity/default/identity.pem" #cache # create a new project to install dfx cache - assert_command_fail ls "$DFX_CACHE_ROOT/.cache/dfinity/versions" - dfx new hello - assert_command ls "$DFX_CACHE_ROOT/.cache/dfinity/versions" assert_command_fail ls "$HOME/.cache/dfinity/versions" + dfx new hello + assert_command ls "$HOME/.cache/dfinity/versions" rm -rf hello - - ( - # use subshell to retain $DFX_CONFIG_ROOT for teardown - # remove configured variable, should use $HOME now - unset DFX_CACHE_ROOT - unset DFX_CONFIG_ROOT - - dfx identity new --storage-mode plaintext bob - assert_command head "$HOME/.config/dfx/identity/bob/identity.pem" - assert_command head "$HOME/.config/dfx/identity/default/identity.pem" - - #cache - # create a new project to install dfx cache - assert_command_fail ls "$HOME/.cache/dfinity/versions" - dfx new hello - assert_command ls "$HOME/.cache/dfinity/versions" - rm -rf hello - ) + ) } diff --git a/e2e/tests-dfx/wallet.bash b/e2e/tests-dfx/wallet.bash index e8d71486db..56f9677204 100644 --- a/e2e/tests-dfx/wallet.bash +++ b/e2e/tests-dfx/wallet.bash @@ -3,224 +3,224 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "DFX_WALLET_WASM environment variable overrides wallet module wasm at installation" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - dfx identity new --storage-mode plaintext alice - dfx identity new --storage-mode plaintext bob + dfx identity new --storage-mode plaintext alice + dfx identity new --storage-mode plaintext bob - use_wallet_wasm 0.7.0 - assert_command dfx identity get-wallet --identity alice - assert_match "Using wasm at path: .*/wallet/0.7.0/wallet.wasm" + use_wallet_wasm 0.7.0 + assert_command dfx identity get-wallet --identity alice + assert_match "Using wasm at path: .*/wallet/0.7.0/wallet.wasm" - use_wallet_wasm 0.7.2 - assert_command dfx identity get-wallet --identity bob - assert_match "Using wasm at path: .*/wallet/0.7.2/wallet.wasm" + use_wallet_wasm 0.7.2 + assert_command dfx identity get-wallet --identity bob + assert_match "Using wasm at path: .*/wallet/0.7.2/wallet.wasm" - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - BOB_WALLET=$(dfx identity get-wallet --identity bob) + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + BOB_WALLET=$(dfx identity get-wallet --identity bob) - assert_command dfx canister info "$ALICE_WALLET" --identity alice - assert_match "Module hash: 0xa609400f2576d1d6df72ce868b359fd08e1d68e58454ef17db2361d2f1c242a1" + assert_command dfx canister info "$ALICE_WALLET" --identity alice + assert_match "Module hash: 0xa609400f2576d1d6df72ce868b359fd08e1d68e58454ef17db2361d2f1c242a1" - assert_command dfx canister info "$BOB_WALLET" --identity bob - assert_match "Module hash: 0x1404b28b1c66491689b59e184a9de3c2be0dbdd75d952f29113b516742b7f898" + assert_command dfx canister info "$BOB_WALLET" --identity bob + assert_match "Module hash: 0x1404b28b1c66491689b59e184a9de3c2be0dbdd75d952f29113b516742b7f898" } @test "DFX_WALLET_WASM environment variable overrides wallet module wasm for upgrade" { - dfx_new hello - dfx_start + dfx_new hello + dfx_start - use_wallet_wasm 0.7.0-beta.5 + use_wallet_wasm 0.7.0-beta.5 - assert_command dfx identity get-wallet - WALLET_ID=$(dfx identity get-wallet) + assert_command dfx identity get-wallet + WALLET_ID=$(dfx identity get-wallet) - assert_command dfx canister info "$WALLET_ID" - assert_match "Module hash: 0x3d5b221387875574a9fd75b3165403cf1b301650a602310e9e4229d2f6766dcc" + assert_command dfx canister info "$WALLET_ID" + assert_match "Module hash: 0x3d5b221387875574a9fd75b3165403cf1b301650a602310e9e4229d2f6766dcc" - use_wallet_wasm 0.7.0 - assert_command dfx wallet upgrade + use_wallet_wasm 0.7.0 + assert_command dfx wallet upgrade - assert_command dfx canister info "$WALLET_ID" - assert_match "Module hash: 0xa609400f2576d1d6df72ce868b359fd08e1d68e58454ef17db2361d2f1c242a1" + assert_command dfx canister info "$WALLET_ID" + assert_match "Module hash: 0xa609400f2576d1d6df72ce868b359fd08e1d68e58454ef17db2361d2f1c242a1" } @test "'dfx identity set-wallet --force' bypasses wallet canister verification" { - dfx_new hello - dfx_start - setup_actuallylocal_shared_network - - # get Canister IDs to install the wasm onto - dfx canister create hello_backend --network actuallylocal - ID=$(dfx canister id hello_backend --network actuallylocal) - dfx canister create hello_frontend --network actuallylocal - ID_TWO=$(dfx canister id hello_frontend --network actuallylocal) - - # set controller to user - dfx canister update-settings hello_backend --set-controller "$(dfx identity get-principal)" --network actuallylocal - dfx canister update-settings hello_frontend --set-controller "$(dfx identity get-principal)" --network actuallylocal - - assert_command_fail dfx identity set-wallet "${ID}" --network actuallylocal - assert_not_match "Setting wallet for identity" - assert_command dfx identity set-wallet --force "${ID}" --network actuallylocal - assert_match "Setting wallet for identity 'default' on network 'actuallylocal' to id '$ID'" - assert_command jq -r .identities.default.actuallylocal <"$DFX_CONFIG_ROOT"/.config/dfx/identity/default/wallets.json - assert_eq "$ID" + dfx_new hello + dfx_start + setup_actuallylocal_shared_network + + # get Canister IDs to install the wasm onto + dfx canister create hello_backend --network actuallylocal + ID=$(dfx canister id hello_backend --network actuallylocal) + dfx canister create hello_frontend --network actuallylocal + ID_TWO=$(dfx canister id hello_frontend --network actuallylocal) + + # set controller to user + dfx canister update-settings hello_backend --set-controller "$(dfx identity get-principal)" --network actuallylocal + dfx canister update-settings hello_frontend --set-controller "$(dfx identity get-principal)" --network actuallylocal + + assert_command_fail dfx identity set-wallet "${ID}" --network actuallylocal + assert_not_match "Setting wallet for identity" + assert_command dfx identity set-wallet --force "${ID}" --network actuallylocal + assert_match "Setting wallet for identity 'default' on network 'actuallylocal' to id '$ID'" + assert_command jq -r .identities.default.actuallylocal <"$DFX_CONFIG_ROOT"/.config/dfx/identity/default/wallets.json + assert_eq "$ID" } @test "deploy wallet" { - dfx_new hello - dfx_start - setup_actuallylocal_shared_network - - # get Canister IDs to install the wasm onto - dfx canister create hello_frontend --network actuallylocal - ID=$(dfx canister id hello_frontend --network actuallylocal) - dfx deploy hello_backend --network actuallylocal - ID_TWO=$(dfx canister id hello_backend --network actuallylocal) - - # set controller to user - dfx canister update-settings hello_backend --set-controller "$(dfx identity get-principal)" --network actuallylocal - dfx canister update-settings hello_frontend --set-controller "$(dfx identity get-principal)" --network actuallylocal - - # We're testing on a local network so the create command actually creates a wallet - # Delete this file to force associate wallet created by deploy-wallet to identity - rm "$DFX_CONFIG_ROOT"/.config/dfx/identity/default/wallets.json - - assert_command dfx identity deploy-wallet "${ID}" --network actuallylocal - GET_WALLET_RES=$(dfx identity get-wallet --network actuallylocal) - assert_eq "$ID" "$GET_WALLET_RES" - - # Command should fail on an already-deployed canister - assert_command_fail dfx identity deploy-wallet "${ID_TWO}" --network actuallylocal - assert_match "The wallet canister \"${ID_TWO}\"\ already exists for user \"default\" on \"actuallylocal\" network." + dfx_new hello + dfx_start + setup_actuallylocal_shared_network + + # get Canister IDs to install the wasm onto + dfx canister create hello_frontend --network actuallylocal + ID=$(dfx canister id hello_frontend --network actuallylocal) + dfx deploy hello_backend --network actuallylocal + ID_TWO=$(dfx canister id hello_backend --network actuallylocal) + + # set controller to user + dfx canister update-settings hello_backend --set-controller "$(dfx identity get-principal)" --network actuallylocal + dfx canister update-settings hello_frontend --set-controller "$(dfx identity get-principal)" --network actuallylocal + + # We're testing on a local network so the create command actually creates a wallet + # Delete this file to force associate wallet created by deploy-wallet to identity + rm "$DFX_CONFIG_ROOT"/.config/dfx/identity/default/wallets.json + + assert_command dfx identity deploy-wallet "${ID}" --network actuallylocal + GET_WALLET_RES=$(dfx identity get-wallet --network actuallylocal) + assert_eq "$ID" "$GET_WALLET_RES" + + # Command should fail on an already-deployed canister + assert_command_fail dfx identity deploy-wallet "${ID_TWO}" --network actuallylocal + assert_match "The wallet canister \"${ID_TWO}\"\ already exists for user \"default\" on \"actuallylocal\" network." } @test "wallet create wallet" { - dfx_new - dfx_start - WALLET_ID=$(dfx identity get-wallet) - CREATE_RES=$(dfx canister call "${WALLET_ID}" wallet_create_wallet "(record { cycles = (2000000000000:nat64); settings = record {controller = opt principal \"$(dfx identity get-principal)\";};})") - CHILD_ID=$(echo "${CREATE_RES}" | tr '\n' ' ' | cut -d'"' -f 2) - assert_command dfx canister call "${CHILD_ID}" wallet_balance '()' + dfx_new + dfx_start + WALLET_ID=$(dfx identity get-wallet) + CREATE_RES=$(dfx canister call "${WALLET_ID}" wallet_create_wallet "(record { cycles = (2000000000000:nat64); settings = record {controller = opt principal \"$(dfx identity get-principal)\";};})") + CHILD_ID=$(echo "${CREATE_RES}" | tr '\n' ' ' | cut -d'"' -f 2) + assert_command dfx canister call "${CHILD_ID}" wallet_balance '()' } @test "forward user call through wallet" { - dfx_new - install_asset identity - dfx_start - WALLET=$(dfx identity get-wallet) - assert_command dfx canister create --all --wallet "$WALLET" - assert_command dfx build - assert_command dfx canister install --all --wallet "$WALLET" - - CALL_RES=$(dfx canister call e2e_project_backend fromCall --wallet "$WALLET") - CALLER=$(echo "${CALL_RES}" | cut -d'"' -f 2) - assert_eq "$CALLER" "$WALLET" - - assert_command dfx canister call "$WALLET" wallet_call \ - "(record { canister = principal \"$(dfx canister id e2e_project_backend)\"; method_name = \"amInitializer\"; args = blob \"DIDL\00\00\"; cycles = (0:nat64)})" - assert_eq '(variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01~\01" } })' # True in DIDL. + dfx_new + install_asset identity + dfx_start + WALLET=$(dfx identity get-wallet) + assert_command dfx canister create --all --wallet "$WALLET" + assert_command dfx build + assert_command dfx canister install --all --wallet "$WALLET" + + CALL_RES=$(dfx canister call e2e_project_backend fromCall --wallet "$WALLET") + CALLER=$(echo "${CALL_RES}" | cut -d'"' -f 2) + assert_eq "$CALLER" "$WALLET" + + assert_command dfx canister call "$WALLET" wallet_call \ + "(record { canister = principal \"$(dfx canister id e2e_project_backend)\"; method_name = \"amInitializer\"; args = blob \"DIDL\00\00\"; cycles = (0:nat64)})" + assert_eq '(variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01~\01" } })' # True in DIDL. } @test "forward user call through wallet: deploy" { - dfx_new - install_asset identity - dfx_start - WALLET=$(dfx identity get-wallet) - assert_command dfx deploy --wallet "$WALLET" - CALL_RES=$(dfx canister call e2e_project_backend fromCall --wallet "$WALLET") - CALLER=$(echo "${CALL_RES}" | cut -d'"' -f 2) - assert_eq "$CALLER" "$WALLET" - - assert_command dfx canister call e2e_project_backend amInitializer - assert_command dfx canister call "$WALLET" wallet_call \ - "(record { canister = principal \"$(dfx canister id e2e_project_backend)\"; method_name = \"amInitializer\"; args = blob \"DIDL\00\00\"; cycles = (0:nat64)})" - assert_eq '(variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01~\01" } })' # True in DIDL. + dfx_new + install_asset identity + dfx_start + WALLET=$(dfx identity get-wallet) + assert_command dfx deploy --wallet "$WALLET" + CALL_RES=$(dfx canister call e2e_project_backend fromCall --wallet "$WALLET") + CALLER=$(echo "${CALL_RES}" | cut -d'"' -f 2) + assert_eq "$CALLER" "$WALLET" + + assert_command dfx canister call e2e_project_backend amInitializer + assert_command dfx canister call "$WALLET" wallet_call \ + "(record { canister = principal \"$(dfx canister id e2e_project_backend)\"; method_name = \"amInitializer\"; args = blob \"DIDL\00\00\"; cycles = (0:nat64)})" + assert_eq '(variant { 17_724 = record { 153_986_224 = blob "DIDL\00\01~\01" } })' # True in DIDL. } @test "a 64-bit wallet can still be called in the 128-bit context" { - use_wallet_wasm 0.8.2 - dfx_new hello - dfx_start - WALLET=$(dfx identity get-wallet) - assert_command dfx wallet balance - assert_command dfx deploy --wallet "$WALLET" - assert_command dfx canister call hello_backend greet '("")' --with-cycles 1 --wallet "$WALLET" - dfx identity new alice --storage-mode plaintext - ALICE_WALLET=$(dfx identity get-wallet --identity alice) - dfx wallet send "$ALICE_WALLET" 1 + use_wallet_wasm 0.8.2 + dfx_new hello + dfx_start + WALLET=$(dfx identity get-wallet) + assert_command dfx wallet balance + assert_command dfx deploy --wallet "$WALLET" + assert_command dfx canister call hello_backend greet '("")' --with-cycles 1 --wallet "$WALLET" + dfx identity new alice --storage-mode plaintext + ALICE_WALLET=$(dfx identity get-wallet --identity alice) + dfx wallet send "$ALICE_WALLET" 1 } @test "dfx canister deposit-cycles succeeds on a canister the caller does not own" { - dfx_new hello - dfx_start - dfx identity new alice --storage-mode plaintext - dfx deploy --no-wallet hello_backend --identity alice - assert_command dfx canister deposit-cycles 1 hello_backend --wallet "$(dfx identity get-wallet)" + dfx_new hello + dfx_start + dfx identity new alice --storage-mode plaintext + dfx deploy --no-wallet hello_backend --identity alice + assert_command dfx canister deposit-cycles 1 hello_backend --wallet "$(dfx identity get-wallet)" } @test "dfx canister deposit-cycles uses default wallet if no wallet is specified" { - dfx_new hello - dfx_start - dfx deploy - assert_command dfx canister deposit-cycles 1 hello_backend + dfx_new hello + dfx_start + dfx deploy + assert_command dfx canister deposit-cycles 1 hello_backend } @test "detects if there is no wallet to upgrade" { - dfx_new hello - assert_command_fail dfx wallet upgrade - assert_match "There is no wallet defined for identity 'default' on network 'local'. Nothing to do." + dfx_new hello + assert_command_fail dfx wallet upgrade + assert_match "There is no wallet defined for identity 'default' on network 'local'. Nothing to do." } @test "redeem-faucet-coupon can set a new wallet and top up an existing one" { - dfx_new hello - dfx_start - install_asset faucet - dfx deploy - dfx ledger fabricate-cycles --canister faucet --t 1000 - - dfx identity new --storage-mode plaintext faucet_testing - dfx identity use faucet_testing - - # prepare wallet to hand out - dfx wallet balance # this creates a new wallet with user faucet_testing as controller - dfx canister call faucet set_wallet_to_hand_out "(principal \"$(dfx identity get-wallet)\")" # register the wallet as the wallet that the faucet will return - rm "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" # forget about the currently configured wallet - - # assert: no wallet configured - export DFX_DISABLE_AUTO_WALLET=1 - assert_command_fail dfx wallet balance - assert_match "command requires a configured wallet" - - assert_command dfx wallet redeem-faucet-coupon --faucet "$(dfx canister id faucet)" 'valid-coupon' - assert_match "Redeemed coupon valid-coupon for a new wallet" - assert_match "New wallet set." - - # only succeeds if wallet is correctly set - assert_command dfx wallet balance - # checking only balance before the dot, rest may fluctuate - # balance may be 99.??? TC if cycles accounting is done, or 100.000 TC if not - assert_match "99\.|100\." - - unset DFX_DISABLE_AUTO_WALLET - - assert_command dfx wallet redeem-faucet-coupon --faucet "$(dfx canister id faucet)" 'another-valid-coupon' - assert_match "Redeemed coupon code another-valid-coupon for 10.000 TC" - - assert_command dfx wallet balance - # checking only balance before the dot, rest may fluctuate - # balance may be 109.??? TC if cycles accounting is done, or 110.000 TC if not - assert_match "109\.|110\." + dfx_new hello + dfx_start + install_asset faucet + dfx deploy + dfx ledger fabricate-cycles --canister faucet --t 1000 + + dfx identity new --storage-mode plaintext faucet_testing + dfx identity use faucet_testing + + # prepare wallet to hand out + dfx wallet balance # this creates a new wallet with user faucet_testing as controller + dfx canister call faucet set_wallet_to_hand_out "(principal \"$(dfx identity get-wallet)\")" # register the wallet as the wallet that the faucet will return + rm "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/wallets.json" # forget about the currently configured wallet + + # assert: no wallet configured + export DFX_DISABLE_AUTO_WALLET=1 + assert_command_fail dfx wallet balance + assert_match "command requires a configured wallet" + + assert_command dfx wallet redeem-faucet-coupon --faucet "$(dfx canister id faucet)" 'valid-coupon' + assert_match "Redeemed coupon valid-coupon for a new wallet" + assert_match "New wallet set." + + # only succeeds if wallet is correctly set + assert_command dfx wallet balance + # checking only balance before the dot, rest may fluctuate + # balance may be 99.??? TC if cycles accounting is done, or 100.000 TC if not + assert_match "99\.|100\." + + unset DFX_DISABLE_AUTO_WALLET + + assert_command dfx wallet redeem-faucet-coupon --faucet "$(dfx canister id faucet)" 'another-valid-coupon' + assert_match "Redeemed coupon code another-valid-coupon for 10.000 TC" + + assert_command dfx wallet balance + # checking only balance before the dot, rest may fluctuate + # balance may be 109.??? TC if cycles accounting is done, or 110.000 TC if not + assert_match "109\.|110\." } diff --git a/e2e/tests-icx-asset/icx-asset.bash b/e2e/tests-icx-asset/icx-asset.bash index 8c292050bf..786887aea2 100644 --- a/e2e/tests-icx-asset/icx-asset.bash +++ b/e2e/tests-icx-asset/icx-asset.bash @@ -3,24 +3,24 @@ load ../utils/_ setup() { - # when running e2e tests not in GitHub CI (so e.g. locally), build icx-proxy and set environment variable - if [ -z "$ICX_ASSET" ]; then - cargo build -p icx-asset - ICX_ASSET="$(pwd)/target/debug/icx-asset" - fi + # when running e2e tests not in GitHub CI (so e.g. locally), build icx-proxy and set environment variable + if [ -z "$ICX_ASSET" ]; then + cargo build -p icx-asset + ICX_ASSET="$(pwd)/target/debug/icx-asset" + fi - standard_setup + standard_setup - dfx_new_frontend - dfx_start + dfx_new_frontend + dfx_start - assert_command dfx deploy + assert_command dfx deploy } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } icx_asset_sync() { @@ -28,10 +28,10 @@ icx_asset_sync() { REPLICA_ADDRESS="http://localhost:$(get_webserver_port)" CANISTER_ID=$(dfx canister id e2e_project_frontend) if [ -z "$1" ]; then - assert_command "$ICX_ASSET" --pem "$IDENTITY" --replica "$REPLICA_ADDRESS" sync "$CANISTER_ID" src/e2e_project_frontend/assets + assert_command "$ICX_ASSET" --pem "$IDENTITY" --replica "$REPLICA_ADDRESS" sync "$CANISTER_ID" src/e2e_project_frontend/assets else - # shellcheck disable=SC2086 - assert_command "$ICX_ASSET" --pem "$IDENTITY" --replica "$REPLICA_ADDRESS" sync "$CANISTER_ID" $1 $2 + # shellcheck disable=SC2086 + assert_command "$ICX_ASSET" --pem "$IDENTITY" --replica "$REPLICA_ADDRESS" sync "$CANISTER_ID" $1 $2 fi } @@ -51,16 +51,16 @@ icx_asset_upload() { } @test "lists assets" { - for i in $(seq 1 400); do - echo "some easily duplicate text $i" >>src/e2e_project_frontend/assets/notreally.js - done - icx_asset_sync + for i in $(seq 1 400); do + echo "some easily duplicate text $i" >>src/e2e_project_frontend/assets/notreally.js + done + icx_asset_sync - icx_asset_list + icx_asset_list - assert_match "sample-asset.txt.*text/plain.*identity" - assert_match "notreally.js.*application/javascript.*gzip" - assert_match "notreally.js.*application/javascript.*identity" + assert_match "sample-asset.txt.*text/plain.*identity" + assert_match "notreally.js.*application/javascript.*gzip" + assert_match "notreally.js.*application/javascript.*identity" } @test "creates new files" { @@ -72,224 +72,224 @@ icx_asset_upload() { } @test "updates existing files" { - echo -n "an asset that will change" >src/e2e_project_frontend/assets/asset-to-change.txt - assert_command dfx deploy + echo -n "an asset that will change" >src/e2e_project_frontend/assets/asset-to-change.txt + assert_command dfx deploy - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/asset-to-change.txt";accept_encodings=vec{"identity"}})' - # shellcheck disable=SC2154 - assert_match '"an asset that will change"' "$stdout" + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/asset-to-change.txt";accept_encodings=vec{"identity"}})' + # shellcheck disable=SC2154 + assert_match '"an asset that will change"' "$stdout" - echo -n "an asset that has been changed" >src/e2e_project_frontend/assets/asset-to-change.txt + echo -n "an asset that has been changed" >src/e2e_project_frontend/assets/asset-to-change.txt - icx_asset_sync + icx_asset_sync - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/asset-to-change.txt";accept_encodings=vec{"identity"}})' - # shellcheck disable=SC2154 - assert_match '"an asset that has been changed"' "$stdout" + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/asset-to-change.txt";accept_encodings=vec{"identity"}})' + # shellcheck disable=SC2154 + assert_match '"an asset that has been changed"' "$stdout" echo pass } @test "deletes removed files" { - touch src/e2e_project_frontend/assets/will-delete-this.txt - dfx deploy + touch src/e2e_project_frontend/assets/will-delete-this.txt + dfx deploy - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend list '(record{})' - assert_match '"/will-delete-this.txt"' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend list '(record{})' + assert_match '"/will-delete-this.txt"' - rm src/e2e_project_frontend/assets/will-delete-this.txt + rm src/e2e_project_frontend/assets/will-delete-this.txt - icx_asset_sync + icx_asset_sync - assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend list '(record{})' - assert_not_match '"/will-delete-this.txt"' + assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend list '(record{})' + assert_not_match '"/will-delete-this.txt"' } @test "unsets asset encodings that are removed from project" { - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="text/plain"; content_encoding="arbitrary"; content=blob "content encoded in another way!"})' + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="text/plain"; content_encoding="arbitrary"; content=blob "content encoded in another way!"})' - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' - icx_asset_sync + icx_asset_sync - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' - # shellcheck disable=SC2086 - assert_command_fail dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"identity"}})' + # shellcheck disable=SC2086 + assert_command_fail dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/sample-asset.txt";accept_encodings=vec{"arbitrary"}})' } @test "synchronizes multiple directories" { - mkdir -p multiple/a - mkdir -p multiple/b - echo "x_contents" >multiple/a/x - echo "y_contents" >multiple/b/y + mkdir -p multiple/a + mkdir -p multiple/b + echo "x_contents" >multiple/a/x + echo "y_contents" >multiple/b/y - icx_asset_sync multiple/a multiple/b - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/x";accept_encodings=vec{"identity"}})' - assert_match "x_contents" - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/y";accept_encodings=vec{"identity"}})' - assert_match "y_contents" + icx_asset_sync multiple/a multiple/b + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/x";accept_encodings=vec{"identity"}})' + assert_match "x_contents" + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --query e2e_project_frontend get '(record{key="/y";accept_encodings=vec{"identity"}})' + assert_match "y_contents" } @test "reports errors about assets with the same key from multiple sources" { - mkdir -p multiple/a - mkdir -p multiple/b - echo "a_duplicate_contents" >multiple/a/duplicate - echo "b_duplicate_contents" >multiple/b/duplicate + mkdir -p multiple/a + mkdir -p multiple/b + echo "a_duplicate_contents" >multiple/a/duplicate + echo "b_duplicate_contents" >multiple/b/duplicate - assert_command_fail icx_asset_sync multiple/a multiple/b - assert_match "Asset with key '/duplicate' defined at .*/e2e_project/multiple/b/duplicate and .*/e2e_project/multiple/a/duplicate" + assert_command_fail icx_asset_sync multiple/a multiple/b + assert_match "Asset with key '/duplicate' defined at .*/e2e_project/multiple/b/duplicate and .*/e2e_project/multiple/a/duplicate" } @test "ignores filenames and directories starting with a dot" { - touch src/e2e_project_frontend/assets/.not-seen - touch src/e2e_project_frontend/assets/is-seen + touch src/e2e_project_frontend/assets/.not-seen + touch src/e2e_project_frontend/assets/is-seen - mkdir -p src/e2e_project_frontend/assets/.dir-skipped - touch src/e2e_project_frontend/assets/.dir-skipped/also-ignored + mkdir -p src/e2e_project_frontend/assets/.dir-skipped + touch src/e2e_project_frontend/assets/.dir-skipped/also-ignored - mkdir -p src/e2e_project_frontend/assets/dir-not-skipped - touch src/e2e_project_frontend/assets/dir-not-skipped/not-ignored + mkdir -p src/e2e_project_frontend/assets/dir-not-skipped + touch src/e2e_project_frontend/assets/dir-not-skipped/not-ignored - icx_asset_sync + icx_asset_sync - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/is-seen";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend get '(record{key="/dir-not-skipped/not-ignored";accept_encodings=vec{"identity"}})' - assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/.not-seen";accept_encodings=vec{"identity"}})' - assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/.dir-skipped/also-ignored";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/is-seen";accept_encodings=vec{"identity"}})' + assert_command dfx canister call --query e2e_project_frontend get '(record{key="/dir-not-skipped/not-ignored";accept_encodings=vec{"identity"}})' + assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/.not-seen";accept_encodings=vec{"identity"}})' + assert_command_fail dfx canister call --query e2e_project_frontend get '(record{key="/.dir-skipped/also-ignored";accept_encodings=vec{"identity"}})' - assert_command dfx canister call --query e2e_project_frontend list '(record{})' + assert_command dfx canister call --query e2e_project_frontend list '(record{})' - assert_match 'is-seen' - assert_match 'not-ignored' + assert_match 'is-seen' + assert_match 'not-ignored' - assert_not_match 'not-seen' - assert_not_match 'also-ignored' + assert_not_match 'not-seen' + assert_not_match 'also-ignored' } @test "does not delete files that are not being uploaded" { - mkdir some_dir - echo "some stuff" >some_dir/a.txt - echo "more things" >some_dir/b.txt + mkdir some_dir + echo "some stuff" >some_dir/a.txt + echo "more things" >some_dir/b.txt - icx_asset_upload /=some_dir + icx_asset_upload /=some_dir - icx_asset_list + icx_asset_list - assert_match " /a.txt.*text/plain.*identity" - assert_match " /b.txt.*text/plain.*identity" + assert_match " /a.txt.*text/plain.*identity" + assert_match " /b.txt.*text/plain.*identity" - echo "ccc" >c.txt - icx_asset_upload c.txt + echo "ccc" >c.txt + icx_asset_upload c.txt - icx_asset_list + icx_asset_list - assert_match " /a.txt.*text/plain.*identity" - assert_match " /b.txt.*text/plain.*identity" - assert_match " /c.txt.*text/plain.*identity" + assert_match " /a.txt.*text/plain.*identity" + assert_match " /b.txt.*text/plain.*identity" + assert_match " /c.txt.*text/plain.*identity" } @test "deletes asset if necessary in order to change content type" { - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="application/pdf"; content_encoding="identity"; content=blob "whatever contents!"})' - # shellcheck disable=SC2086 - assert_command dfx canister ${DFX_NO_WALLET:-} call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="application/pdf"; content_encoding="arbitrary"; content=blob "other contents"})' + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="application/pdf"; content_encoding="identity"; content=blob "whatever contents!"})' + # shellcheck disable=SC2086 + assert_command dfx canister ${DFX_NO_WALLET:-} call --update e2e_project_frontend store '(record{key="/sample-asset.txt"; content_type="application/pdf"; content_encoding="arbitrary"; content=blob "other contents"})' - icx_asset_list + icx_asset_list - assert_match " /sample-asset.txt.*application/pdf.*identity" - assert_match " /sample-asset.txt.*application/pdf.*arbitrary" + assert_match " /sample-asset.txt.*application/pdf.*identity" + assert_match " /sample-asset.txt.*application/pdf.*arbitrary" - echo "just some text" >sample-asset.txt + echo "just some text" >sample-asset.txt - # icx-asset upload should delete the asset (and upload its replacement) since the content type is different. - icx_asset_upload sample-asset.txt + # icx-asset upload should delete the asset (and upload its replacement) since the content type is different. + icx_asset_upload sample-asset.txt - icx_asset_list + icx_asset_list - assert_match " /sample-asset.txt.*text/plain.*identity" - assert_not_match " /sample-asset.txt.*application/pdf.*arbitrary" + assert_match " /sample-asset.txt.*text/plain.*identity" + assert_not_match " /sample-asset.txt.*application/pdf.*arbitrary" } @test "uploads multiple files" { - echo "this is the file content" >uploaded.txt - echo "this is the file content ttt" >xyz.txt - mkdir some_dir - echo "some stuff" >some_dir/a.txt - echo "more things" >some_dir/b.txt + echo "this is the file content" >uploaded.txt + echo "this is the file content ttt" >xyz.txt + mkdir some_dir + echo "some stuff" >some_dir/a.txt + echo "more things" >some_dir/b.txt - icx_asset_upload some_dir/*.txt - icx_asset_list + icx_asset_upload some_dir/*.txt + icx_asset_list - assert_match " /a.txt.*text/plain.*identity" - assert_match " /b.txt.*text/plain.*identity" + assert_match " /a.txt.*text/plain.*identity" + assert_match " /b.txt.*text/plain.*identity" } @test "uploads multiple files from absolute path" { - mkdir some_dir - echo "some stuff" >some_dir/a.txt - echo "more things" >some_dir/b.txt + mkdir some_dir + echo "some stuff" >some_dir/a.txt + echo "more things" >some_dir/b.txt - icx_asset_upload "$(realpath some_dir/a.txt)" "$(realpath some_dir/b.txt)" - icx_asset_list + icx_asset_upload "$(realpath some_dir/a.txt)" "$(realpath some_dir/b.txt)" + icx_asset_list - assert_match " /a.txt.*text/plain.*identity" - assert_match " /b.txt.*text/plain.*identity" + assert_match " /a.txt.*text/plain.*identity" + assert_match " /b.txt.*text/plain.*identity" } @test "uploads a file by name" { - echo "this is the file content" >uploaded.txt + echo "this is the file content" >uploaded.txt - icx_asset_upload uploaded.txt + icx_asset_upload uploaded.txt - icx_asset_list + icx_asset_list - assert_match " /uploaded.txt.*text/plain.*identity" + assert_match " /uploaded.txt.*text/plain.*identity" } @test "can override asset name" { - echo "this is the file content" >uploaded.txt + echo "this is the file content" >uploaded.txt - icx_asset_upload /abcd.txt=uploaded.txt + icx_asset_upload /abcd.txt=uploaded.txt - icx_asset_list + icx_asset_list - assert_match " /abcd.txt.*text/plain.*identity" + assert_match " /abcd.txt.*text/plain.*identity" } @test "uploads a directory by name" { - mkdir some_dir - echo "some stuff" >some_dir/a.txt - echo "more things" >some_dir/b.txt + mkdir some_dir + echo "some stuff" >some_dir/a.txt + echo "more things" >some_dir/b.txt - icx_asset_upload some_dir + icx_asset_upload some_dir - icx_asset_list + icx_asset_list - assert_match " /some_dir/a.txt.*text/plain.*identity" - assert_match " /some_dir/b.txt.*text/plain.*identity" + assert_match " /some_dir/a.txt.*text/plain.*identity" + assert_match " /some_dir/b.txt.*text/plain.*identity" } @test "uploads a directory by name as root" { - mkdir some_dir - echo "some stuff" >some_dir/a.txt - echo "more things" >some_dir/b.txt + mkdir some_dir + echo "some stuff" >some_dir/a.txt + echo "more things" >some_dir/b.txt - icx_asset_upload /=some_dir + icx_asset_upload /=some_dir - icx_asset_list + icx_asset_list - assert_match " /a.txt.*text/plain.*identity" - assert_match " /b.txt.*text/plain.*identity" + assert_match " /a.txt.*text/plain.*identity" + assert_match " /b.txt.*text/plain.*identity" } diff --git a/e2e/tests-replica/deploy.bash b/e2e/tests-replica/deploy.bash index 1faa10b72f..8ba88f5cf8 100644 --- a/e2e/tests-replica/deploy.bash +++ b/e2e/tests-replica/deploy.bash @@ -3,96 +3,96 @@ load ../utils/_ setup() { - standard_setup + standard_setup } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "deploy from a fresh project" { - dfx_new hello - dfx_start - install_asset greet - assert_command dfx deploy + dfx_new hello + dfx_start + install_asset greet + assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Banzai")' - assert_eq '("Hello, Banzai!")' + assert_command dfx canister call hello_backend greet '("Banzai")' + assert_eq '("Hello, Banzai!")' } @test "deploy a canister without dependencies" { - dfx_new hello - dfx_start - install_asset greet - assert_command dfx deploy hello_backend - assert_match 'Deploying: hello_backend' - assert_not_match 'hello_frontend' + dfx_new hello + dfx_start + install_asset greet + assert_command dfx deploy hello_backend + assert_match 'Deploying: hello_backend' + assert_not_match 'hello_frontend' } @test "deploy a canister with dependencies" { - dfx_new hello - dfx_start - install_asset greet - assert_command dfx deploy hello_frontend - assert_match 'Deploying: hello_backend hello_frontend' + dfx_new hello + dfx_start + install_asset greet + assert_command dfx deploy hello_frontend + assert_match 'Deploying: hello_backend hello_frontend' } @test "deploy a canister with non-circular shared dependencies" { - install_asset transitive_deps_canisters - dfx_start - assert_command dfx deploy canister_f - assert_match 'Deploying: canister_a canister_f canister_g canister_h' + install_asset transitive_deps_canisters + dfx_start + assert_command dfx deploy canister_f + assert_match 'Deploying: canister_a canister_f canister_g canister_h' } @test "report an error on attempt to deploy a canister with circular dependencies" { - install_asset transitive_deps_canisters - dfx_start - assert_command_fail dfx deploy canister_d - assert_match 'canister_d -> canister_e -> canister_d' + install_asset transitive_deps_canisters + dfx_start + assert_command_fail dfx deploy canister_d + assert_match 'canister_d -> canister_e -> canister_d' } @test "deploy with InstallMode::Install on an empty canister" { - dfx_new hello - install_asset greet - dfx_start - assert_command dfx canister create --all + dfx_new hello + install_asset greet + dfx_start + assert_command dfx canister create --all - assert_command dfx deploy - assert_match 'Installing code for canister' + assert_command dfx deploy + assert_match 'Installing code for canister' } @test "dfx deploy supports arguments" { - dfx_new hello - install_asset greet_arg - dfx_start - assert_command dfx canister create --all + dfx_new hello + install_asset greet_arg + dfx_start + assert_command dfx canister create --all - assert_command dfx deploy hello_backend --argument '("World")' + assert_command dfx deploy hello_backend --argument '("World")' - assert_command dfx canister call hello_backend greet - assert_match 'Hello, World' + assert_command dfx canister call hello_backend greet + assert_match 'Hello, World' } @test "dfx deploy with InstallMode::Install on first invocation, InstallMode::Upgrade on second" { - dfx_new hello - install_asset greet - dfx_start + dfx_new hello + install_asset greet + dfx_start - # In the normal case, whether for an initial install or a subsequent install, - # dfx deploy does the right thing, so it doesn't need to retry. - # Therefore, there is no "attempting (install|upgrade)" message. + # In the normal case, whether for an initial install or a subsequent install, + # dfx deploy does the right thing, so it doesn't need to retry. + # Therefore, there is no "attempting (install|upgrade)" message. - assert_command dfx deploy hello_backend - assert_match 'Installing code for canister' + assert_command dfx deploy hello_backend + assert_match 'Installing code for canister' - assert_command dfx canister call hello_backend greet '("First")' - assert_eq '("Hello, First!")' + assert_command dfx canister call hello_backend greet '("First")' + assert_eq '("Hello, First!")' - assert_command dfx deploy hello_backend --upgrade-unchanged - assert_match 'Upgrading code for canister' + assert_command dfx deploy hello_backend --upgrade-unchanged + assert_match 'Upgrading code for canister' - assert_command dfx canister call hello_backend greet '("Second")' - assert_eq '("Hello, Second!")' + assert_command dfx canister call hello_backend greet '("Second")' + assert_eq '("Hello, Second!")' } diff --git a/e2e/tests-replica/lifecycle.bash b/e2e/tests-replica/lifecycle.bash index 70e24a5ee2..a675477a76 100644 --- a/e2e/tests-replica/lifecycle.bash +++ b/e2e/tests-replica/lifecycle.bash @@ -3,57 +3,57 @@ load ../utils/_ setup() { - standard_setup + standard_setup - dfx_new hello + dfx_new hello } teardown() { - dfx_stop + dfx_stop - standard_teardown + standard_teardown } @test "test canister lifecycle" { - install_asset greet - dfx_start - dfx canister create --all - dfx build - dfx canister install hello_backend - assert_command dfx canister status hello_backend - assert_match "Status: Running." - - # Stop - assert_command dfx canister stop hello_backend - assert_command dfx canister status hello_backend - assert_match "Status: Stopped." - assert_command_fail dfx canister call "$(dfx canister id hello_backend)" greet '("Names are difficult")' - assert_match "is stopped" - - # Start - assert_command dfx canister start hello_backend - assert_command dfx canister status hello_backend - assert_match "Status: Running." - - # Call - assert_command dfx canister call "$(dfx canister id hello_backend)" greet '("Names are difficult")' - assert_match '("Hello, Names are difficult!")' - - # Id - assert_command dfx canister id hello_backend - assert_match "$(jq -r .hello_backend.local < .dfx/local/canister_ids.json)" - x="$(dfx canister id hello_backend)" - local old_id="$x" - - # Delete - assert_command_fail dfx canister delete hello_backend - assert_command dfx canister stop hello_backend - assert_command dfx canister delete hello_backend - assert_command_fail dfx canister status hello_backend - assert_match "Cannot find canister id. Please issue 'dfx canister create hello_backend'." - - # Create again - assert_command dfx canister create hello_backend - assert_command dfx canister id hello_backend - assert_neq "$old_id" + install_asset greet + dfx_start + dfx canister create --all + dfx build + dfx canister install hello_backend + assert_command dfx canister status hello_backend + assert_match "Status: Running." + + # Stop + assert_command dfx canister stop hello_backend + assert_command dfx canister status hello_backend + assert_match "Status: Stopped." + assert_command_fail dfx canister call "$(dfx canister id hello_backend)" greet '("Names are difficult")' + assert_match "is stopped" + + # Start + assert_command dfx canister start hello_backend + assert_command dfx canister status hello_backend + assert_match "Status: Running." + + # Call + assert_command dfx canister call "$(dfx canister id hello_backend)" greet '("Names are difficult")' + assert_match '("Hello, Names are difficult!")' + + # Id + assert_command dfx canister id hello_backend + assert_match "$(jq -r .hello_backend.local < .dfx/local/canister_ids.json)" + x="$(dfx canister id hello_backend)" + local old_id="$x" + + # Delete + assert_command_fail dfx canister delete hello_backend + assert_command dfx canister stop hello_backend + assert_command dfx canister delete hello_backend + assert_command_fail dfx canister status hello_backend + assert_match "Cannot find canister id. Please issue 'dfx canister create hello_backend'." + + # Create again + assert_command dfx canister create hello_backend + assert_command dfx canister id hello_backend + assert_neq "$old_id" } From 905942e9650efa7043b4268c0bed3b2f75a7bca8 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Tue, 26 Sep 2023 12:46:02 -0700 Subject: [PATCH 20/29] refactor: delete replica and bootstrap commands (#3391) Delete the code and tests related to the `dfx bootstrap` and `dfx replica` commands. The commands were already removed in dfx 0.15.0, so no need for anything in the changelog. --- docs/cli-reference/dfx-bootstrap.md | 3 +- docs/cli-reference/dfx-parent.md | 4 +- docs/cli-reference/dfx-replica.md | 3 +- docs/dfx-json-schema.json | 1 + docs/networks-json-schema.json | 1 + e2e/tests-dfx/bitcoin.bash | 109 ------- e2e/tests-dfx/bootstrap.bash | 40 --- e2e/tests-dfx/canister_http.bash | 124 -------- e2e/tests-dfx/inter.bash | 2 - e2e/tests-dfx/signals.bash | 40 --- e2e/utils/_.bash | 62 ---- src/dfx-core/src/config/model/dfinity.rs | 1 + .../config/model/local_server_descriptor.rs | 59 +--- src/dfx-core/src/network/provider.rs | 51 +--- src/dfx/src/commands/bootstrap.rs | 181 ------------ src/dfx/src/commands/replica.rs | 279 ------------------ src/dfx/src/commands/start.rs | 2 +- src/dfx/src/util/mod.rs | 4 +- 18 files changed, 15 insertions(+), 951 deletions(-) delete mode 100644 e2e/tests-dfx/bootstrap.bash delete mode 100644 e2e/tests-dfx/signals.bash delete mode 100644 src/dfx/src/commands/bootstrap.rs delete mode 100644 src/dfx/src/commands/replica.rs diff --git a/docs/cli-reference/dfx-bootstrap.md b/docs/cli-reference/dfx-bootstrap.md index 94967fc1d7..430750c36e 100644 --- a/docs/cli-reference/dfx-bootstrap.md +++ b/docs/cli-reference/dfx-bootstrap.md @@ -1,4 +1,3 @@ # dfx bootstrap {#_dfx_bootstrap} -> **NOTE**: The bootstrap command has been removed. Please use the [dfx start](./dfx-start.md) command instead. If you have a good reason to use the bootstrap command, please contribute to the [discussion](https://github.com/dfinity/sdk/discussions/3163). - +> **NOTE**: The bootstrap command has been removed. Please use the [dfx start](./dfx-start.md) command instead. diff --git a/docs/cli-reference/dfx-parent.md b/docs/cli-reference/dfx-parent.md index ce77795972..d8f02c3461 100644 --- a/docs/cli-reference/dfx-parent.md +++ b/docs/cli-reference/dfx-parent.md @@ -42,7 +42,7 @@ For reference information and examples, select an appropriate subcommand. | Command | Description | |---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| bootstrap | Starts the bootstrap server (icx-proxy) | +| bootstrap | Removed. Use the `start` command instead. | | [`build`](./dfx-build.md) | Builds canister output from the source code in your project. | | [`cache`](./dfx-cache.md) | Manages the `dfx` cache on the local computer. | | [`canister`](./dfx-canister.md) | Manages deployed canisters . | | @@ -58,7 +58,7 @@ For reference information and examples, select an appropriate subcommand. | [`ping`](./dfx-ping.md) | Sends a response request to the IC or the local canister execution environment to determine network connectivity. If the connection is successful, a status reply is returned. | | quickstart | Perform initial one time setup for your identity and/or wallet. | | remote | Commands used to work with remote canisters. | -| [`replica`](./dfx-replica.md) | Starts a local canister execution environment. | +| [`replica`](./dfx-replica.md) | Removed. Use the `start` command instead. | | [`schema`](./dfx-schema.md) | Prints the schema for `dfx.json`. | | [`start`](./dfx-start.md) | Starts the local canister execution environment a web server for the current project. | | [`stop`](./dfx-stop.md) | Stops the local canister execution environment. | diff --git a/docs/cli-reference/dfx-replica.md b/docs/cli-reference/dfx-replica.md index 05fd408f0b..054d193fa1 100644 --- a/docs/cli-reference/dfx-replica.md +++ b/docs/cli-reference/dfx-replica.md @@ -1,4 +1,3 @@ # dfx replica -> **NOTE**: The replica command has been removed. Please use the [dfx start](./dfx-start.md) command instead. If you have a good reason to use the replica command, please contribute to the [discussion](https://github.com/dfinity/sdk/discussions/3163). - +> **NOTE**: The replica command has been removed. Please use the [dfx start](./dfx-start.md) command instead. \ No newline at end of file diff --git a/docs/dfx-json-schema.json b/docs/dfx-json-schema.json index 42c2a2db4b..8d38220a0a 100644 --- a/docs/dfx-json-schema.json +++ b/docs/dfx-json-schema.json @@ -579,6 +579,7 @@ }, "ConfigDefaultsBootstrap": { "title": "Bootstrap Server Configuration", + "description": "The bootstrap command has been removed. All of these fields are ignored.", "type": "object", "properties": { "ip": { diff --git a/docs/networks-json-schema.json b/docs/networks-json-schema.json index a8725ca836..c5d7ef47c7 100644 --- a/docs/networks-json-schema.json +++ b/docs/networks-json-schema.json @@ -59,6 +59,7 @@ }, "ConfigDefaultsBootstrap": { "title": "Bootstrap Server Configuration", + "description": "The bootstrap command has been removed. All of these fields are ignored.", "type": "object", "properties": { "ip": { diff --git a/e2e/tests-dfx/bitcoin.bash b/e2e/tests-dfx/bitcoin.bash index 72d81f48c1..58dbe31a2d 100644 --- a/e2e/tests-dfx/bitcoin.bash +++ b/e2e/tests-dfx/bitcoin.bash @@ -14,8 +14,6 @@ teardown() { bitcoin-cli -regtest stop dfx_stop - # stop_dfx_replica - # stop_dfx_bootstrap standard_teardown } @@ -87,55 +85,6 @@ set_local_network_bitcoin_enabled() { assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" } -@test "dfx restarts replica when ic-btc-adapter restarts - replica and bootstrap" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - dfx_replica --enable-bitcoin - dfx_bootstrap - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - BTC_ADAPTER_PID=$(get_btc_adapter_pid) - - echo "replica pid is $REPLICA_PID" - echo "replica port is $(get_replica_port)" - echo "ic-btc-adapter pid is $BTC_ADAPTER_PID" - - echo "killing btc adapter" - - kill -KILL "$BTC_ADAPTER_PID" - assert_process_exits "$BTC_ADAPTER_PID" 15s - assert_process_exits "$REPLICA_PID" 15s - - timeout 15s sh -x -c \ - "until curl --fail --verbose -o /dev/null http://localhost:\$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\")/api/v2/status; do echo \"waiting for replica to restart on port \$(cat \"$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\")\"; sleep 1; done" \ - || (echo "replica did not restart" && echo "last replica port was $(get_replica_port)" && ps aux && exit 1) - - # bootstrap doesn't detect the new replica port, so we have to restart it - stop_dfx_bootstrap - dfx_bootstrap - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - # even after the above, still sometimes fails with - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' -} - @test "dfx start --bitcoin-node implies --enable-bitcoin" { dfx_new hello dfx_start "--bitcoin-node" "127.0.0.1:18444" @@ -143,17 +92,6 @@ set_local_network_bitcoin_enabled() { assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" } -@test "dfx replica --bitcoin-node implies --enable-bitcoin" { - skip "dfx replica and bootstrap are deprecated" - - dfx_new hello - dfx_replica "--bitcoin-node" "127.0.0.1:18444" - dfx_bootstrap - - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" -} - - @test "dfx start --enable-bitcoin with no other configuration succeeds" { dfx_new hello @@ -172,15 +110,6 @@ set_local_network_bitcoin_enabled() { assert_contains "Module hash: 0x" } -@test "dfx replica --enable-bitcoin with no other configuration succeeds" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - - dfx_replica --enable-bitcoin - - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" -} - @test "can enable bitcoin through default configuration - dfx start" { dfx_new hello define_project_network @@ -209,27 +138,6 @@ set_local_network_bitcoin_enabled() { assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid } -@test "can enable bitcoin through default configuration - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_default_bitcoin_enabled - - dfx_replica - - assert_file_not_empty .dfx/network/local/ic-btc-adapter-pid -} - -@test "can enable bitcoin through shared local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - set_shared_local_network_bitcoin_enabled - - dfx_replica - - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" -} - @test "dfx start with both bitcoin and canister http enabled" { dfx_new hello @@ -244,20 +152,3 @@ set_local_network_bitcoin_enabled() { assert_eq '("Hello, Alpha!")' } -@test "dfx replica+bootstrap with both bitcoin and canister http enabled" { - skip "dfx replica and bootstrap are deprecated" - - dfx_new hello - - dfx_replica --enable-bitcoin --enable-canister-http - dfx_bootstrap - - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-btc-adapter-pid" - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' -} - diff --git a/e2e/tests-dfx/bootstrap.bash b/e2e/tests-dfx/bootstrap.bash deleted file mode 100644 index 00310e1de8..0000000000 --- a/e2e/tests-dfx/bootstrap.bash +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bats - -load ../utils/_ - -setup() { - standard_setup - - dfx_new hello -} - -teardown() { - # stop_dfx_replica - # stop_dfx_bootstrap - - standard_teardown -} - -@test "forbid starting webserver with a forwarded port" { - skip "dfx replica and bootstrap are deprecated" - - assert_command_fail dfx bootstrap --port 4943 - assert_match "Cannot forward API calls to the same bootstrap server" -} - -@test "bootstrap supports http requests" { - skip "dfx replica and bootstrap are deprecated" - - dfx_replica - dfx_bootstrap - - dfx canister create --all - dfx build - dfx canister install hello_frontend - - ID=$(dfx canister id hello_frontend) - PORT=$(get_webserver_port) - assert_command curl http://localhost:"$PORT"/sample-asset.txt?canisterId="$ID" --max-time 60 - # shellcheck disable=SC2154 - assert_eq "This is a sample asset!" "$stdout" -} diff --git a/e2e/tests-dfx/canister_http.bash b/e2e/tests-dfx/canister_http.bash index c80bf4c927..feb45c7b6b 100644 --- a/e2e/tests-dfx/canister_http.bash +++ b/e2e/tests-dfx/canister_http.bash @@ -8,8 +8,6 @@ setup() { teardown() { dfx_stop - # stop_dfx_replica - # stop_dfx_bootstrap standard_teardown } @@ -97,54 +95,6 @@ set_shared_local_network_canister_http_empty() { assert_command curl --fail http://localhost:"$(get_webserver_port)"/sample-asset.txt?canisterId="$ID" } -@test "dfx restarts replica when ic-https-outcalls-adapter restarts - replica and bootstrap" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - dfx_replica - dfx_bootstrap - - install_asset greet - assert_command dfx deploy - assert_command dfx canister call hello_backend greet '("Alpha")' - assert_eq '("Hello, Alpha!")' - - REPLICA_PID=$(get_replica_pid) - CANISTER_HTTP_ADAPTER_PID=$(get_canister_http_adapter_pid) - - echo "replica pid is $REPLICA_PID" - echo "replica port is $(get_replica_port)" - echo "ic-https-outcalls-adapter pid is $CANISTER_HTTP_ADAPTER_PID" - - kill -KILL "$CANISTER_HTTP_ADAPTER_PID" - assert_process_exits "$CANISTER_HTTP_ADAPTER_PID" 15s - assert_process_exits "$REPLICA_PID" 15s - - timeout 15s sh -x -c \ - "until curl --fail --verbose -o /dev/null http://localhost:\$(cat '$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port')/api/v2/status; do echo \"waiting for replica to restart on port \$(cat '$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port')\"; sleep 1; done" \ - || (echo "replica did not restart" && echo "last replica port was $(get_replica_port)" && ps aux && exit 1) - - # bootstrap doesn't detect the new replica port, so we have to restart it - stop_dfx_bootstrap - dfx_bootstrap - - # Sometimes initially get an error like: - # IC0304: Attempt to execute a message on canister <>> which contains no Wasm module - # but the condition clears. - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 1\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - # Even so, after that passes, sometimes this happens: - # IC0515: Certified state is not available yet. Please try again... - sleep 10 - timeout 30s sh -c \ - "until dfx canister call hello_backend greet '(\"wait 2\")'; do echo waiting for any canister call to succeed; sleep 1; done" \ - || (echo "canister call did not succeed") # but continue, for better error reporting - - assert_command dfx canister call hello_backend greet '("Omega")' - assert_eq '("Hello, Omega!")' -} - @test "dfx start --enable-canister-http with no other configuration succeeds" { dfx_new hello @@ -153,15 +103,6 @@ set_shared_local_network_canister_http_empty() { assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } -@test "dfx replica --enable-canister-http with no other configuration succeeds" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - - dfx_replica --enable-canister-http - - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" -} - @test "can enable http through project default configuration - dfx start" { dfx_new hello define_project_network @@ -220,71 +161,6 @@ set_shared_local_network_canister_http_empty() { assert_file_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" } - -@test "can enable http through project default configuration - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_default_canister_http_enabled - - dfx_replica - - assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid -} - -@test "can disable http through project default configuration - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_default_canister_http_enabled false - - dfx_replica - - assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid -} - -@test "can enable http through project local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_local_network_canister_http_enabled - - dfx_replica - - assert_file_not_empty .dfx/network/local/ic-https-outcalls-adapter-pid -} - -@test "can disable http through project local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - define_project_network - set_project_local_network_canister_http_enabled false - - dfx_replica - - assert_file_empty .dfx/network/local/ic-https-outcalls-adapter-pid -} - -@test "can enable http through shared local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - set_shared_local_network_canister_http_enabled - - dfx_replica - - assert_file_not_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" -} - -@test "can disable http through shared local network - dfx replica" { - skip "dfx replica and bootstrap are deprecated" - dfx_new hello - set_shared_local_network_canister_http_enabled false - - dfx_replica - - assert_file_empty "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/ic-https-outcalls-adapter-pid" -} - @test "dfx starts http adapter with correct log level - project defaults" { dfx_new jq '.defaults.canister_http.log_level="warning"' dfx.json | sponge dfx.json diff --git a/e2e/tests-dfx/inter.bash b/e2e/tests-dfx/inter.bash index 3c6e1783a5..73dfcf335c 100644 --- a/e2e/tests-dfx/inter.bash +++ b/e2e/tests-dfx/inter.bash @@ -8,8 +8,6 @@ setup() { teardown() { dfx_stop - # stop_dfx_replica - # stop_dfx_bootstrap standard_teardown } diff --git a/e2e/tests-dfx/signals.bash b/e2e/tests-dfx/signals.bash deleted file mode 100644 index daa42a8c4c..0000000000 --- a/e2e/tests-dfx/signals.bash +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bats - -load ../utils/_ - -setup() { - standard_setup - - dfx_new hello -} - -teardown() { - dfx_stop - - standard_teardown -} - -@test "dfx replica kills the replica upon SIGINT" { - dfx_replica_kills_replica SIGINT -} - -@test "dfx replica kills the replica upon SIGTERM" { - dfx_replica_kills_replica SIGTERM -} - -dfx_replica_kills_replica() { - skip "dfx replica and bootstrap are deprecated" - signal=$1 - - dfx_patchelf - dfx replica --port 0 & - DFX_PID=$! - - # wait for replica to start - assert_file_eventually_exists "$E2E_SHARED_LOCAL_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port" 15s - - kill -"$signal" "$DFX_PID" - - assert_process_exits $DFX_PID 15s - assert_no_dfx_start_or_replica_processes -} diff --git a/e2e/utils/_.bash b/e2e/utils/_.bash index 7dd3d57aa3..391305a7ce 100644 --- a/e2e/utils/_.bash +++ b/e2e/utils/_.bash @@ -189,68 +189,6 @@ wait_until_replica_healthy() { echo "replica became healthy" } -# Start the replica in the background. -dfx_replica() { - local replica_port dfx_config_root - dfx_patchelf - determine_network_directory - - # Bats creates a FD 3 for test output, but child processes inherit it and Bats will - # wait for it to close. Because `dfx start` leaves child processes running, we need - # to close this pipe, otherwise Bats will wait indefinitely. - dfx replica --port 0 "$@" 3>&- & - export DFX_REPLICA_PID=$! - - timeout 60 sh -c \ - "until test -s \"$E2E_NETWORK_DATA_DIRECTORY/replica-configuration/replica-1.port\"; do echo waiting for replica port; sleep 1; done" \ - || (echo "replica did not write to port file" && exit 1) - - dfx_config_root="$E2E_NETWORK_DATA_DIRECTORY/replica-configuration" - test -f "${dfx_config_root}/replica-1.port" - replica_port=$(cat "${dfx_config_root}/replica-1.port") - - printf "Replica Configured Port: %s\n" "${replica_port}" - - timeout 5 sh -c \ - "until nc -z localhost ${replica_port}; do echo waiting for replica; sleep 1; done" \ - || (echo "could not connect to replica on port ${replica_port}" && exit 1) - - # ping the replica directly, because the bootstrap (that launches icx-proxy, which dfx ping usually connects to) - # is not running yet - dfx ping --wait-healthy "http://127.0.0.1:${replica_port}" -} - -dfx_bootstrap() { - # This only works because we use the network by name - # (implicitly: --network local) - # If we passed --network http://127.0.0.1:${replica_port} - # we would get errors like this: - # "Cannot find canister ryjl3-tyaaa-aaaaa-aaaba-cai for network http___127_0_0_1_54084" - dfx bootstrap --port 0 3>&- & - export DFX_BOOTSTRAP_PID=$! - - timeout 5 sh -c \ - "until nc -z localhost \$(cat \"$E2E_NETWORK_DATA_DIRECTORY/webserver-port\"); do echo waiting for webserver; sleep 1; done" \ - || (echo "could not connect to webserver on port $(get_webserver_port)" && exit 1) - - wait_until_replica_healthy - - webserver_port=$(cat "$E2E_NETWORK_DATA_DIRECTORY/webserver-port") - printf "Webserver Configured Port: %s\n", "${webserver_port}" -} - -# Stop the `dfx replica` process that is running in the background. -stop_dfx_replica() { - [ "$DFX_REPLICA_PID" ] && kill -TERM "$DFX_REPLICA_PID" - unset DFX_REPLICA_PID -} - -# Stop the `dfx bootstrap` process that is running in the background -stop_dfx_bootstrap() { - [ "$DFX_BOOTSTRAP_PID" ] && kill -TERM "$DFX_BOOTSTRAP_PID" - unset DFX_BOOTSTRAP_PID -} - # Stop the replica and verify it is very very stopped. dfx_stop() { # to help tell if other icx-proxy processes are from this test: diff --git a/src/dfx-core/src/config/model/dfinity.rs b/src/dfx-core/src/config/model/dfinity.rs index 4fae8ae0be..5e233544f5 100644 --- a/src/dfx-core/src/config/model/dfinity.rs +++ b/src/dfx-core/src/config/model/dfinity.rs @@ -447,6 +447,7 @@ fn default_as_true() -> bool { } /// # Bootstrap Server Configuration +/// The bootstrap command has been removed. All of these fields are ignored. #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] pub struct ConfigDefaultsBootstrap { /// Specifies the IP address that the bootstrap server listens on. Defaults to 127.0.0.1. diff --git a/src/dfx-core/src/config/model/local_server_descriptor.rs b/src/dfx-core/src/config/model/local_server_descriptor.rs index b7e8db559d..ff4403247c 100644 --- a/src/dfx-core/src/config/model/local_server_descriptor.rs +++ b/src/dfx-core/src/config/model/local_server_descriptor.rs @@ -1,15 +1,14 @@ use crate::config::model::bitcoin_adapter; use crate::config::model::canister_http_adapter::HttpAdapterLogLevel; use crate::config::model::dfinity::{ - to_socket_addr, ConfigDefaultsBitcoin, ConfigDefaultsBootstrap, ConfigDefaultsCanisterHttp, - ConfigDefaultsReplica, ReplicaLogLevel, ReplicaSubnetType, DEFAULT_PROJECT_LOCAL_BIND, - DEFAULT_SHARED_LOCAL_BIND, + to_socket_addr, ConfigDefaultsBitcoin, ConfigDefaultsCanisterHttp, ConfigDefaultsReplica, + ReplicaLogLevel, ReplicaSubnetType, DEFAULT_PROJECT_LOCAL_BIND, DEFAULT_SHARED_LOCAL_BIND, }; use crate::error::network_config::{ NetworkConfigError, NetworkConfigError::ParseBindAddressFailed, }; use slog::{debug, info, Logger}; -use std::net::{IpAddr, SocketAddr}; +use std::net::SocketAddr; use std::path::{Path, PathBuf}; #[derive(Clone, Debug, PartialEq, Eq)] @@ -30,7 +29,6 @@ pub struct LocalServerDescriptor { pub bind_address: SocketAddr, pub bitcoin: ConfigDefaultsBitcoin, - pub bootstrap: ConfigDefaultsBootstrap, pub canister_http: ConfigDefaultsCanisterHttp, pub replica: ConfigDefaultsReplica, @@ -52,7 +50,6 @@ impl LocalServerDescriptor { data_directory: PathBuf, bind: String, bitcoin: ConfigDefaultsBitcoin, - bootstrap: ConfigDefaultsBootstrap, canister_http: ConfigDefaultsCanisterHttp, replica: ConfigDefaultsReplica, scope: LocalNetworkScopeDescriptor, @@ -63,7 +60,6 @@ impl LocalServerDescriptor { data_directory, bind_address, bitcoin, - bootstrap, canister_http, replica, scope, @@ -203,30 +199,6 @@ impl LocalServerDescriptor { }; Self { bitcoin, ..self } } - - pub fn with_bootstrap_ip(self, ip: IpAddr) -> LocalServerDescriptor { - let bootstrap = ConfigDefaultsBootstrap { - ip, - ..self.bootstrap - }; - Self { bootstrap, ..self } - } - - pub fn with_bootstrap_port(self, port: u16) -> LocalServerDescriptor { - let bootstrap = ConfigDefaultsBootstrap { - port, - ..self.bootstrap - }; - Self { bootstrap, ..self } - } - - pub fn with_bootstrap_timeout(self, timeout: u64) -> LocalServerDescriptor { - let bootstrap = ConfigDefaultsBootstrap { - timeout, - ..self.bootstrap - }; - Self { bootstrap, ..self } - } } impl LocalServerDescriptor { @@ -310,31 +282,6 @@ impl LocalServerDescriptor { debug!(log, ""); } - pub fn describe_bootstrap(&self, log: &Logger) { - debug!(log, "Bootstrap configuration:"); - let default: ConfigDefaultsBootstrap = Default::default(); - let diffs = if self.bootstrap.ip != default.ip { - format!(" (default: {:?})", default.ip) - } else { - "".to_string() - }; - debug!(log, " ip: {:?}{}", self.bootstrap.ip, diffs); - - let diffs = if self.bootstrap.port != default.port { - format!(" (default: {})", default.port) - } else { - "".to_string() - }; - debug!(log, " port: {}{}", self.bootstrap.port, diffs); - - let diffs = if self.bootstrap.timeout != default.timeout { - format!(" (default: {})", default.timeout) - } else { - "".to_string() - }; - debug!(log, " timeout: {}{}", self.bootstrap.timeout, diffs); - debug!(log, ""); - } /// Gets the port of a local replica. /// /// # Prerequisites diff --git a/src/dfx-core/src/network/provider.rs b/src/dfx-core/src/network/provider.rs index 7615de99b2..dcc67b2cd6 100644 --- a/src/dfx-core/src/network/provider.rs +++ b/src/dfx-core/src/network/provider.rs @@ -91,11 +91,6 @@ fn config_network_to_network_descriptor( .clone() .or_else(|| project_defaults.and_then(|x| x.bitcoin.clone())) .unwrap_or_default(); - let bootstrap = local_provider - .bootstrap - .clone() - .or_else(|| project_defaults.and_then(|x| x.bootstrap.clone())) - .unwrap_or_default(); let canister_http = local_provider .canister_http .clone() @@ -125,7 +120,6 @@ fn config_network_to_network_descriptor( data_directory, bind_address, bitcoin, - bootstrap, canister_http, replica, local_scope, @@ -476,8 +470,8 @@ mod tests { use crate::config::model::canister_http_adapter::HttpAdapterLogLevel; use crate::config::model::dfinity::ReplicaSubnetType::{System, VerifiedApplication}; use crate::config::model::dfinity::{ - to_socket_addr, ConfigDefaultsBitcoin, ConfigDefaultsBootstrap, ConfigDefaultsCanisterHttp, - ConfigDefaultsReplica, ReplicaLogLevel, + to_socket_addr, ConfigDefaultsBitcoin, ConfigDefaultsCanisterHttp, ConfigDefaultsReplica, + ReplicaLogLevel, }; use std::fs; use std::net::{IpAddr, Ipv4Addr, SocketAddr}; @@ -1017,47 +1011,6 @@ mod tests { ); } - #[test] - fn bootstrap_config_on_local_network() { - let config = Config::from_str( - r#"{ - "networks": { - "local": { - "bind": "127.0.0.1:8000", - "bootstrap": { - "ip": "0.0.0.0", - "port": 12002, - "timeout": 60000 - } - } - } - }"#, - ) - .unwrap(); - - let network_descriptor = create_network_descriptor( - Some(Arc::new(config)), - Arc::new(NetworksConfig::new().unwrap()), - None, - None, - LocalBindDetermination::AsConfigured, - ) - .unwrap(); - let bootstrap_config = &network_descriptor - .local_server_descriptor() - .unwrap() - .bootstrap; - - assert_eq!( - bootstrap_config, - &ConfigDefaultsBootstrap { - ip: IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), - port: 12002, - timeout: 60000 - } - ); - } - #[test] fn url_is_url() { assert_eq!( diff --git a/src/dfx/src/commands/bootstrap.rs b/src/dfx/src/commands/bootstrap.rs deleted file mode 100644 index a639b073ee..0000000000 --- a/src/dfx/src/commands/bootstrap.rs +++ /dev/null @@ -1,181 +0,0 @@ -use crate::actors::icx_proxy::IcxProxyConfig; -use crate::actors::{start_icx_proxy_actor, start_shutdown_controller}; -use crate::lib::environment::Environment; -use crate::lib::error::DfxResult; -use crate::util::get_reusable_socket_addr; -use crate::NetworkOpt; -use dfx_core::config::model::network_descriptor::NetworkDescriptor; -use dfx_core::network::provider::{create_network_descriptor, LocalBindDetermination}; -use anyhow::{anyhow, Context, Error}; -use clap::Parser; -use fn_error_context::context; -use slog::warn; -use std::fs::create_dir_all; -use std::net::{IpAddr, SocketAddr}; - -/// Starts the bootstrap server. -#[derive(Parser, Clone)] -pub struct BootstrapOpts { - /// Specifies the IP address that the bootstrap server listens on. Defaults to 127.0.0.1. - #[arg(long)] - ip: Option, - - /// Specifies the port number that the bootstrap server listens on. Defaults to 8081. - #[arg(long)] - port: Option, - - #[command(flatten)] - network: NetworkOpt, - - /// Specifies the maximum number of seconds that the bootstrap server - /// will wait for upstream requests to complete. Defaults to 30. - #[arg(long)] - timeout: Option, -} - -/// Runs the bootstrap server. -pub fn exec( - env: &dyn Environment, - BootstrapOpts { - ip, - port, - network, - timeout, - }: BootstrapOpts, -) -> DfxResult { - warn!( - env.get_logger(), - "The bootstrap command is deprecated. \ - Please use the start command instead. \ - If you have a good reason to use the bootstrap command, \ - please contribute to the discussion at https://github.com/dfinity/sdk/discussions/3163" - ); - let network_descriptor = create_network_descriptor( - env.get_config(), - env.get_networks_config(), - network.to_network_name(), - Some(env.get_logger().clone()), - LocalBindDetermination::AsConfigured, - )?; - let network_descriptor = - apply_arguments(network_descriptor, ip, port.as_deref(), timeout.as_deref())?; - let local_server_descriptor = network_descriptor.local_server_descriptor()?; - local_server_descriptor.describe_bootstrap(env.get_logger()); - let config_bootstrap = &local_server_descriptor.bootstrap; - - create_dir_all(&local_server_descriptor.data_directory).with_context(|| { - format!( - "Failed to create network temp directory {}.", - local_server_descriptor.data_directory.to_string_lossy() - ) - })?; - - let icx_proxy_pid_file_path = local_server_descriptor.icx_proxy_pid_path(); - - let replica_urls = network_descriptor.get_replica_urls(Some(env.get_logger()))?; - - // Since the user may have provided port "0", we need to grab a dynamically - // allocated port and construct a resuable SocketAddr which the actix - // HttpServer will bind to - let socket_addr = get_reusable_socket_addr(config_bootstrap.ip, config_bootstrap.port) - .context("Failed to find socket address for the HTTP server.")?; - - let webserver_port_path = local_server_descriptor.webserver_port_path(); - std::fs::write(&webserver_port_path, "").with_context(|| { - format!( - "Failed to write/clear webserver port file {}.", - webserver_port_path.to_string_lossy() - ) - })?; - std::fs::write(&webserver_port_path, socket_addr.port().to_string()).with_context(|| { - format!( - "Failed to write port to webserver port file {}.", - webserver_port_path.to_string_lossy() - ) - })?; - - verify_unique_ports(&replica_urls, &socket_addr)?; - - let system = actix::System::new(); - let _proxy = system - .block_on(async move { - let shutdown_controller = start_shutdown_controller(env)?; - - let icx_proxy_config = IcxProxyConfig { - bind: socket_addr, - replica_urls, - fetch_root_key: !network_descriptor.is_ic, - verbose: env.get_verbose_level() > 0, - }; - - let port_ready_subscribe = None; - let proxy = start_icx_proxy_actor( - env, - icx_proxy_config, - port_ready_subscribe, - shutdown_controller, - icx_proxy_pid_file_path, - )?; - Ok::<_, Error>(proxy) - }) - .context("Failed to start proxy.")?; - system.run().context("Failed to run system runner.")?; - - Ok(()) -} - -#[context("Cannot bind to and serve from the same port.")] -fn verify_unique_ports(providers: &[url::Url], bind: &SocketAddr) -> DfxResult { - // Verify that we cannot bind to a port that we forward to. - let bound_port = bind.port(); - let bind_and_forward_on_same_port = providers.iter().any(|url| { - Some(bound_port) == url.port() - && match url.host_str() { - Some(h) => h == "localhost" || h == "::1" || h == "127.0.0.1", - None => true, - } - }); - if bind_and_forward_on_same_port { - return Err(anyhow!( - "Cannot forward API calls to the same bootstrap server." - )); - } - Ok(()) -} - -#[context("Failed to determine bootstrap server configuration.")] -fn apply_arguments( - network_descriptor: NetworkDescriptor, - ip: Option, - port: Option<&str>, - timeout: Option<&str>, -) -> DfxResult { - let _ = network_descriptor.local_server_descriptor()?; - let mut local_server_descriptor = network_descriptor.local_server_descriptor.unwrap(); - - if let Some(ip) = ip { - let ip: IpAddr = ip - .parse() - .context("Invalid argument: Invalid IP address.")?; - local_server_descriptor = local_server_descriptor.with_bootstrap_ip(ip); - } - - if let Some(port) = port { - let port: u16 = port - .parse() - .context("Invalid argument: Invalid port number.")?; - local_server_descriptor = local_server_descriptor.with_bootstrap_port(port); - } - - if let Some(timeout) = timeout { - let timeout: u64 = timeout - .parse() - .context("Invalid argument: Invalid timeout.")?; - local_server_descriptor = local_server_descriptor.with_bootstrap_timeout(timeout); - } - - Ok(NetworkDescriptor { - local_server_descriptor: Some(local_server_descriptor), - ..network_descriptor - }) -} diff --git a/src/dfx/src/commands/replica.rs b/src/dfx/src/commands/replica.rs deleted file mode 100644 index e32dbaa84e..0000000000 --- a/src/dfx/src/commands/replica.rs +++ /dev/null @@ -1,279 +0,0 @@ -use crate::actors::{ - start_btc_adapter_actor, start_canister_http_adapter_actor, start_emulator_actor, - start_replica_actor, start_shutdown_controller, -}; -use crate::commands::start::{ - apply_command_line_parameters, configure_btc_adapter_if_enabled, - configure_canister_http_adapter_if_enabled, empty_writable_path, -}; -use crate::lib::environment::Environment; -use crate::lib::error::DfxResult; -use crate::lib::network::id::write_network_id; -use crate::lib::replica_config::{HttpHandlerConfig, ReplicaConfig}; -use dfx_core::config::model::dfinity::DEFAULT_REPLICA_PORT; -use dfx_core::config::model::local_server_descriptor::LocalServerDescriptor; -use dfx_core::json::{load_json_file, save_json_file}; -use dfx_core::network::provider::{create_network_descriptor, LocalBindDetermination}; -use anyhow::{bail, Context}; -use clap::{ArgAction, Parser}; -use fn_error_context::context; -use slog::warn; -use std::default::Default; -use std::fs; -use std::fs::create_dir_all; -use std::net::SocketAddr; -use std::path::{Path, PathBuf}; -use super::start::CachedConfig; - -/// Starts a local Internet Computer replica. -#[derive(Parser)] -pub struct ReplicaOpts { - /// Specifies the port the local replica should listen to. - #[arg(long)] - port: Option, - - /// Runs a dedicated emulator instead of the replica - #[arg(long)] - emulator: bool, - - /// Address of bitcoind node. Implies --enable-bitcoin. - #[arg(long, conflicts_with("emulator"), action = ArgAction::Append)] - bitcoin_node: Vec, - - /// enable bitcoin integration - #[arg(long, conflicts_with("emulator"))] - enable_bitcoin: bool, - - /// enable canister http requests - #[arg(long, conflicts_with("emulator"))] - enable_canister_http: bool, - - /// The delay (in milliseconds) an update call should take. Lower values may be expedient in CI. - #[arg(long, conflicts_with("emulator"), default_value_t = 600)] - artificial_delay: u32, - - /// Start even if the network config was modified. - #[arg(long)] - force: bool, -} - -/// Gets the configuration options for the Internet Computer replica. -#[context("Failed to get replica config.")] -fn get_config( - local_server_descriptor: &LocalServerDescriptor, - replica_port_path: PathBuf, - state_root: &Path, - artificial_delay: u32, -) -> DfxResult { - let config = &local_server_descriptor.replica; - let port = config.port.unwrap_or(DEFAULT_REPLICA_PORT); - let mut http_handler: HttpHandlerConfig = Default::default(); - if port == 0 { - http_handler.write_port_to = Some(replica_port_path); - } else { - http_handler.port = Some(port); - }; - - let mut replica_config = ReplicaConfig::new( - state_root, - config.subnet_type.unwrap_or_default(), - config.log_level.unwrap_or_default(), - artificial_delay, - ); - replica_config.http_handler = http_handler; - - Ok(replica_config) -} - -/// Start the Internet Computer locally. Spawns a proxy to forward and -/// manage browser requests. Responsible for running the network (one -/// replica at the moment), the proxy, and (if configured) the bitcoin adapter. -pub fn exec( - env: &dyn Environment, - ReplicaOpts { - port, - emulator, - bitcoin_node, - enable_bitcoin, - enable_canister_http, - artificial_delay, - force, - }: ReplicaOpts, -) -> DfxResult { - warn!( - env.get_logger(), - "The replica command is deprecated. \ - Please use the start command instead. \ - If you have a good reason to use the replica command, \ - please contribute to the discussion at https://github.com/dfinity/sdk/discussions/3163" - ); - let system = actix::System::new(); - - let network_descriptor = create_network_descriptor( - env.get_config(), - env.get_networks_config(), - None, - Some(env.get_logger().clone()), - LocalBindDetermination::AsConfigured, - )?; - let network_descriptor = apply_command_line_parameters( - env.get_logger(), - network_descriptor, - None, - port, - enable_bitcoin, - bitcoin_node, - enable_canister_http, - emulator - )?; - - let local_server_descriptor = network_descriptor.local_server_descriptor()?; - local_server_descriptor.describe(env.get_logger()); - - let temp_dir = &local_server_descriptor.data_directory; - create_dir_all(temp_dir).with_context(|| { - format!( - "Failed to create network temp directory {}.", - temp_dir.to_string_lossy() - ) - })?; - if !local_server_descriptor.network_id_path().exists() { - write_network_id(local_server_descriptor)?; - } - - let btc_adapter_pid_file_path = - empty_writable_path(local_server_descriptor.btc_adapter_pid_path())?; - let btc_adapter_config_path = - empty_writable_path(local_server_descriptor.btc_adapter_config_path())?; - let btc_adapter_socket_holder_path = local_server_descriptor.btc_adapter_socket_holder_path(); - let canister_http_adapter_pid_file_path = - empty_writable_path(local_server_descriptor.canister_http_adapter_pid_path())?; - let canister_http_adapter_config_path = - empty_writable_path(local_server_descriptor.canister_http_adapter_config_path())?; - let canister_http_adapter_socket_holder_path = - local_server_descriptor.canister_http_adapter_socket_holder_path(); - - let previous_config_path = local_server_descriptor.effective_config_path(); - - // dfx bootstrap will read these port files to find out which port to use, - // so we need to make sure only one has a valid port in it. - let replica_config_dir = local_server_descriptor.replica_configuration_dir(); - fs::create_dir_all(&replica_config_dir).with_context(|| { - format!( - "Failed to create replica config directory {}.", - replica_config_dir.display() - ) - })?; - let replica_port_path = empty_writable_path(local_server_descriptor.replica_port_path())?; - let emulator_port_path = empty_writable_path(local_server_descriptor.ic_ref_port_path())?; - let state_root = local_server_descriptor.state_dir(); - - let btc_adapter_config = configure_btc_adapter_if_enabled( - local_server_descriptor, - &btc_adapter_config_path, - &btc_adapter_socket_holder_path, - )?; - let btc_adapter_socket_path = btc_adapter_config - .as_ref() - .and_then(|cfg| cfg.get_socket_path()); - - let canister_http_adapter_config = configure_canister_http_adapter_if_enabled( - local_server_descriptor, - &canister_http_adapter_config_path, - &canister_http_adapter_socket_holder_path, - )?; - let canister_http_socket_path = canister_http_adapter_config - .as_ref() - .and_then(|cfg| cfg.get_socket_path()); - let replica_config = { - let mut replica_config = get_config( - local_server_descriptor, - replica_port_path, - &state_root, - artificial_delay, - )?; - if let Some(btc_adapter_config) = btc_adapter_config.as_ref() { - replica_config = replica_config.with_btc_adapter_enabled(); - if let Some(btc_adapter_socket) = btc_adapter_config.get_socket_path() { - replica_config = replica_config.with_btc_adapter_socket(btc_adapter_socket); - } - } - if let Some(canister_http_adapter_config) = canister_http_adapter_config.as_ref() { - replica_config = replica_config.with_canister_http_adapter_enabled(); - if let Some(socket_path) = canister_http_adapter_config.get_socket_path() { - replica_config = replica_config.with_canister_http_adapter_socket(socket_path); - } - } - replica_config - }; - - let effective_config = if emulator { - CachedConfig::emulator() - } else { - CachedConfig::replica(&replica_config) - }; - if !force && previous_config_path.exists() { - let previous_config = load_json_file(&previous_config_path) - .context("Failed to read replica configuration. Run `dfx start` with `--clean`.")?; - if effective_config != previous_config { - bail!("The network configuration was changed. Run `dfx start` with `--clean`.") - } - } - save_json_file(&previous_config_path, &effective_config) - .context("Failed to write replica configuration")?; - - system.block_on(async move { - let shutdown_controller = start_shutdown_controller(env)?; - if emulator { - start_emulator_actor( - env, - local_server_descriptor, - shutdown_controller, - emulator_port_path, - )?; - } else { - let btc_adapter_ready_subscribe = btc_adapter_config - .map(|btc_adapter_config| { - start_btc_adapter_actor( - env, - btc_adapter_config_path, - btc_adapter_config.get_socket_path(), - shutdown_controller.clone(), - btc_adapter_pid_file_path, - ) - }) - .transpose()?; - let canister_http_adapter_ready_subscribe = canister_http_adapter_config - .map(|canister_http_adapter_config| { - start_canister_http_adapter_actor( - env, - canister_http_adapter_config_path, - canister_http_adapter_config.get_socket_path(), - shutdown_controller.clone(), - canister_http_adapter_pid_file_path, - ) - }) - .transpose()?; - - start_replica_actor( - env, - replica_config, - local_server_descriptor, - shutdown_controller, - btc_adapter_ready_subscribe, - canister_http_adapter_ready_subscribe, - )?; - } - DfxResult::Ok(()) - })?; - system.run()?; - - if let Some(btc_adapter_socket_path) = btc_adapter_socket_path { - let _ = std::fs::remove_file(&btc_adapter_socket_path); - } - if let Some(canister_http_socket_path) = canister_http_socket_path { - let _ = std::fs::remove_file(&canister_http_socket_path); - } - - Ok(()) -} diff --git a/src/dfx/src/commands/start.rs b/src/dfx/src/commands/start.rs index 06c799fd36..03515f5740 100644 --- a/src/dfx/src/commands/start.rs +++ b/src/dfx/src/commands/start.rs @@ -227,7 +227,7 @@ pub fn exec( let previous_config_path = local_server_descriptor.effective_config_path(); - // dfx bootstrap will read these port files to find out which port to use, + // dfx info replica-port will read these port files to find out which port to use, // so we need to make sure only one has a valid port in it. let replica_config_dir = local_server_descriptor.replica_configuration_dir(); fs::create_dir_all(&replica_config_dir).with_context(|| { diff --git a/src/dfx/src/util/mod.rs b/src/dfx/src/util/mod.rs index 7f18abbeee..98787ea76e 100644 --- a/src/dfx/src/util/mod.rs +++ b/src/dfx/src/util/mod.rs @@ -27,8 +27,8 @@ pub mod stderr_wrapper; const DECIMAL_POINT: char = '.'; -// The user can pass in port "0" to dfx start or dfx bootstrap i.e. "127.0.0.1:0" or "[::1]:0", -// thus, we need to recreate SocketAddr with the kernel provided dynmically allocated port here. +// The user can pass in port "0" to dfx start i.e. "127.0.0.1:0" or "[::1]:0", +// thus, we need to recreate SocketAddr with the kernel-provided dynamically allocated port here. // TcpBuilder is used with reuse_address and reuse_port set to "true" because // the Actix HttpServer in webserver.rs will bind to this SocketAddr. #[context("Failed to find reusable socket address")] From 1bf35a1db7c326ddc661c444a075e0d73a462544 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Tue, 26 Sep 2023 15:37:06 -0700 Subject: [PATCH 21/29] test: retry mops sources call in playground e2e tests (#3392) The `mops sources` command in the playground e2e tests fails often. The retry logic in the JS agent misses some classes of failures (basically, if `fetch` throws). Pending a fix for that, this change retries the `mops sources` call up to a few times, with simple/naive backoff. Example test failures: - https://github.com/dfinity/sdk/actions/runs/6114033428/job/16595080284#step:10:111 - https://github.com/dfinity/sdk/actions/runs/6090058722/job/16524749754#step:10:108 - https://github.com/dfinity/sdk/actions/runs/5929218365/job/16076870508#step:10:109 - https://github.com/dfinity/sdk/actions/runs/5858605218/job/15883717915#step:10:107 - https://github.com/dfinity/sdk/actions/runs/6316833146/job/17152786799?pr=3391 --- e2e/assets/playground_backend/dfx.json | 2 +- e2e/assets/playground_backend/mops-sources | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 e2e/assets/playground_backend/mops-sources diff --git a/e2e/assets/playground_backend/dfx.json b/e2e/assets/playground_backend/dfx.json index dbae6de715..afdd89f86b 100644 --- a/e2e/assets/playground_backend/dfx.json +++ b/e2e/assets/playground_backend/dfx.json @@ -19,7 +19,7 @@ "defaults": { "build": { "output": "build", - "packtool": "mops sources" + "packtool": "./mops-sources" } } } \ No newline at end of file diff --git a/e2e/assets/playground_backend/mops-sources b/e2e/assets/playground_backend/mops-sources new file mode 100755 index 0000000000..56be5bd50a --- /dev/null +++ b/e2e/assets/playground_backend/mops-sources @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -e + +for i in 0 2 4 8 16 32; do + if [ $i -gt 0 ]; then + echo "retrying in $i seconds" 1>&2 + sleep $i + fi + + if output=$(mops sources); then + echo "$output" + exit 0 + fi + echo "failed with output: $output" 1>&2 +done +exit 1 From d2404ec7c60fa9a37cc70eb489a14509e8eee992 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Wed, 27 Sep 2023 16:19:38 -0700 Subject: [PATCH 22/29] test: pin mops to version that only writes package parameters to stdout (#3395) mops 0.27.2 logs extra information to stdout, alongside the expected `--package ` output. This causes our calls to `moc` to fail, and blocks any PR from passing CI. This PR pins mops to 0.27.1 pending a fix. Once a reversion of this PR passes CI, that reversion can be merged. --- e2e/tests-dfx/playground.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/tests-dfx/playground.bash b/e2e/tests-dfx/playground.bash index c90316adb9..25d04ade1d 100644 --- a/e2e/tests-dfx/playground.bash +++ b/e2e/tests-dfx/playground.bash @@ -16,7 +16,7 @@ teardown() { setup_playground() { if ! command -v ic-mops &> /dev/null then - npm i -g ic-mops + npm i -g ic-mops@0.27.1 fi dfx_new hello create_networks_json From 6024938287f3f4fe0f3735ee6dc2a2711758187e Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Wed, 27 Sep 2023 17:17:10 -0700 Subject: [PATCH 23/29] chore: update to icx-proxy-dev built along with rest of replica binaries (#3246) This updates to the dev version of the icx-proxy, at a commit matching the replica and other released binaries. It also updates the replica update script to update the icx-proxy in the future. The new icx-proxy checks certificates. This has exposed some problems in the asset canister, tracked here and described in the changelog: - https://dfinity.atlassian.net/browse/SDK-1240 - https://dfinity.atlassian.net/browse/SDK-1245 - https://dfinity.atlassian.net/browse/SDK-1246 So far these appear to be edge cases. Since they match the behavior that will be seen on mainnet anyway, it seems better to see this behavior in local development as well. Fixes https://dfinity.atlassian.net/browse/SDK-1200 --- CHANGELOG.md | 12 +++ e2e/tests-dfx/assetscanister.bash | 149 +++++++++++++++++++++++--- nix/sources.json | 18 ++-- scripts/update-replica.sh | 2 + src/dfx/assets/dfx-asset-sources.toml | 8 +- src/dfx/assets/prepare_assets.rs | 9 +- 6 files changed, 167 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86546d9f46..b53b000f05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,18 @@ Removed this warning: "Project-specific networks are deprecated and will be remo ## Dependencies +### icx-proxy + +Updated to a version of the icx-proxy that is released with the replica and other related binaries. + +Changes in behavior: +- "%%" is no longer accepted when url-decoding filenames for the asset canister. Though curl supports this, it's not part of the standard. Please replace with %25. +- The icx-proxy now performs response verification. This has exposed some bugs in the asset canister. However, since this new icx-proxy matches what the boundary nodes use, this will better match the behavior seen on the mainnet. +- Bugs that this has exposed in the asset canister: + - after disabling aliasing for an asset, the asset canister will return an incorrect certification in the 404 response. + - after setting a custom "etag" header in .ic-assets.json, the asset canister will return an incorrect certification in the 200 response. + - assets with certain characters in the filename (example: "æ") will no longer be served correctly. The definition of "certain characters" is not yet known. + ### Frontend canister For certification v1, if none of the requested encoding are certified but another encoding is certified, then the frontend canister once again returns the certificatie even though the response hash won't match. diff --git a/e2e/tests-dfx/assetscanister.bash b/e2e/tests-dfx/assetscanister.bash index d37ac80e67..a95795fa33 100644 --- a/e2e/tests-dfx/assetscanister.bash +++ b/e2e/tests-dfx/assetscanister.bash @@ -694,6 +694,36 @@ check_permission_failure() { assert_command dfx deploy } +@test "can serve filenames with special characters in filename" { + # This is observed, not expected behavior + # see https://dfinity.atlassian.net/browse/SDK-1247 + install_asset assetscanister + + dfx_start + + echo "filename is an ae symbol" >'src/e2e_project_frontend/assets/æ' + + dfx deploy + + dfx canister call --query e2e_project_frontend list '(record {})' + + # decode as expected + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%e6";headers=vec{};method="GET";body=vec{}})' + assert_match "filename is an ae symbol" # candid looks like blob "filename is \c3\a6\0a" + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + + # fails with Err(InvalidExpressionPath) + assert_command_fail curl --fail -vv http://localhost:"$PORT"/%c3%a6?canisterId="$ID" + + # fails with Err(Utf8ConversionError(FromUtf8Error { bytes: [47, 230], error: Utf8Error { valid_up_to: 1, error_len: None } })) + assert_command_fail curl --fail -vv http://localhost:"$PORT"/%e6?canisterId="$ID" + # assert_match "200 OK" "$stderr" + # assert_match "filename is an ae symbol" + assert_contains "500 Internal Server Error" +} + @test "http_request percent-decodes urls" { install_asset assetscanister @@ -717,11 +747,11 @@ check_permission_failure() { assert_match "contents of file with plus in filename" assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%2Bplus.txt";headers=vec{};method="GET";body=vec{}})' assert_match "contents of file with plus in filename" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%%percent.txt";headers=vec{};method="GET";body=vec{}})' + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/has%25percent.txt";headers=vec{};method="GET";body=vec{}})' assert_match "contents of file with percent in filename" assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%e6";headers=vec{};method="GET";body=vec{}})' assert_match "filename is an ae symbol" # candid looks like blob "filename is \c3\a6\0a" - assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%%";headers=vec{};method="GET";body=vec{}})' + assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/%25";headers=vec{};method="GET";body=vec{}})' assert_match "filename is percent" # this test ensures url decoding happens after removing the query string assert_command dfx canister call --query e2e_project_frontend http_request '(record{url="/filename%3fwithqmark.txt";headers=vec{};method="GET";body=vec{}})' @@ -755,15 +785,18 @@ check_permission_failure() { assert_match "200 OK" "$stderr" assert_match "contents of file with plus in filename" - assert_command curl --fail -vv http://localhost:"$PORT"/has%%percent.txt?canisterId="$ID" + assert_command curl --fail -vv http://localhost:"$PORT"/has%25percent.txt?canisterId="$ID" assert_match "200 OK" "$stderr" assert_match "contents of file with percent in filename" - assert_command curl --fail -vv http://localhost:"$PORT"/%e6?canisterId="$ID" - assert_match "200 OK" "$stderr" - assert_match "filename is an ae symbol" + assert_command_fail curl --fail -vv http://localhost:"$PORT"/%e6?canisterId="$ID" + # see https://dfinity.atlassian.net/browse/SDK-1247 + # fails with Err(Utf8ConversionError(FromUtf8Error { bytes: [47, 230], error: Utf8Error { valid_up_to: 1, error_len: None } })) + assert_contains "500 Internal Server Error" + # assert_match "200 OK" "$stderr" + # assert_match "filename is an ae symbol" - assert_command curl --fail -vv http://localhost:"$PORT"/%%?canisterId="$ID" + assert_command curl --fail -vv http://localhost:"$PORT"/%25?canisterId="$ID" assert_match "200 OK" "$stderr" assert_match "filename is percent symbol" @@ -1193,8 +1226,42 @@ CHERRIES" "$stdout" assert_match "404 Not Found" assert_command curl -vv "http://localhost:$PORT/.well-known/.another-hidden/ignored.txt?canisterId=$ID" assert_match "404 Not Found" +} + +@test "asset configuration via .ic-assets.json5 - overwriting etag breaks certification" { + # this is observed behavior, not expected behavior + # https://dfinity.atlassian.net/browse/SDK-1245 + install_asset assetscanister + + dfx_start + + touch src/e2e_project_frontend/assets/thing.json + + dfx deploy + + ID=$(dfx canister id e2e_project_frontend) + PORT=$(get_webserver_port) + + dfx canister call --query e2e_project_frontend http_request '(record{url="/thing.json";headers=vec{};method="GET";body=vec{}})' + assert_command curl --fail --head "http://localhost:$PORT/thing.json?canisterId=$ID" + + echo '[ + { + "match": "thing.json", + "headers": { + "etag": "my-etag" + } + } + ]' > src/e2e_project_frontend/assets/.ic-assets.json5 + + dfx deploy + + dfx canister call --query e2e_project_frontend http_request '(record{url="/thing.json";headers=vec{};method="GET";body=vec{}})' + assert_command_fail curl --fail --head "http://localhost:$PORT/thing.json?canisterId=$ID" + assert_contains "500 Internal Server Error" } + @test "asset configuration via .ic-assets.json5 - overwriting default headers" { install_asset assetscanister @@ -1202,6 +1269,8 @@ CHERRIES" "$stdout" touch src/e2e_project_frontend/assets/thing.json + # this test used to also set etag, but that breaks certification + # see https://dfinity.atlassian.net/browse/SDK-1245 echo '[ { "match": "thing.json", @@ -1209,8 +1278,7 @@ CHERRIES" "$stdout" "headers": { "Content-Encoding": "my-encoding", "Content-Type": "x-type", - "Cache-Control": "custom", - "etag": "my-etag" + "Cache-Control": "custom" } } ]' > src/e2e_project_frontend/assets/.ic-assets.json5 @@ -1220,11 +1288,13 @@ CHERRIES" "$stdout" ID=$(dfx canister id e2e_project_frontend) PORT=$(get_webserver_port) - assert_command curl --head "http://localhost:$PORT/thing.json?canisterId=$ID" + dfx canister call --query e2e_project_frontend http_request '(record{url="/thing.json";headers=vec{};method="GET";body=vec{}})' + + assert_command curl --fail --head "http://localhost:$PORT/thing.json?canisterId=$ID" assert_match "cache-control: custom" assert_match "content-encoding: my-encoding" assert_match "content-type: x-type" - assert_not_match "etag: my-etag" + # https://dfinity.atlassian.net/browse/SDK-1245 assert_not_match "etag: my-etag" assert_match "etag: \"[a-z0-9]{64}\"" } @@ -1271,9 +1341,58 @@ CHERRIES" "$stdout" assert_match "test index file" # toggle aliasing on and off using `set_asset_properties` + # this doesn't work, see https://dfinity.atlassian.net/browse/SDK-1246 + dfx canister call --query e2e_project_frontend http_request '(record{url="/test_alias_file";headers=vec{};method="GET";body=vec{}})' + # output looks like this: + # ( + # record { + # body = blob "test alias file\0a"; + # headers = vec { + # record { + # "etag"; + # "\"67fb58e3ea4556105dd5a4080e8d386e0c5f9bf5f505dd0f4a2bd865ec27c606\""; + # }; + # record { "content-type"; "text/html" }; + # record { + # "IC-Certificate"; + # "certificate=:2dn3omR0cmVlgwGDAYMBgwJIY2FuaXN0ZXKDAYIEWCB6TamgcIBRRI9+Lfe6n1mQhfqXmFKDoOihriXzPhQ8YIMBgwJKgAAAAAAQAAIBAYMBgwGDAk5jZXJ0aWZpZWRfZGF0YYIDWCDclbSRbugItvQEwCwQDt2dGNnmSWXaDfyenwBDFGQev4IEWCDN7xKU70bQDnAGR8er6+SatQSi07lHyqye6YJDNdfzOYIEWCB326K/dXJismN6beQyTC9LeKBpzbOmOZPkRjpu4uIkt4IEWCCsjlsVa3dA4Inoj23KaUsHLZTOoZT/Uqzog9gmkovo34IEWCB9LBGrUHBg7qBYleBnVlVc672alvi9zWYf8D/2CKvHMoIEWCCMpFgCT+gbsEX08W0sB8h46ysJg+clCHOjW/qmKqWCYIMBggRYIIUC8ZdiVnT/LeyjAp84wEB9JBYPO1U4tZCYvNVw1eM3gwJEdGltZYIDScD5rc7w2aTEF2lzaWduYXR1cmVYMIQdy8BFvQjET2yjcKYQ47d62tiCtV4lfcjNiyDYWGM3FXOgjORzH5MnoSIY1HwJrA==:, tree=:2dn3gwGDAktodHRwX2Fzc2V0c4MBggRYINCuA0oUZ982kzKVIIrBrs5i693coETpgd/s0JEVMozsgwGDAlAvdGVzdF9hbGlhc19maWxlggNYIGf7WOPqRVYQXdWkCA6NOG4MX5v19QXdD0or2GXsJ8YGggRYICTVHJF+Vk5ccI2w7iQhhyiMkcffMLtaKScYnwtlBC+BggRYIFce2lClRDSsnfeLc7YS3j0JsELBY5a3bbUPh+luB7dD:"; + # }; + # }; + # streaming_strategy = null; + # status_code = 200 : nat16; + # }, + # ) + + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/test_alias_file.html"; is_aliased=opt(opt(false)) })' + + dfx canister call --query e2e_project_frontend http_request '(record{url="/test_alias_file";headers=vec{};method="GET";body=vec{}})' + # output looks like this. Notice that the body and status code have changed, but the certificate is exactly the same. + # ( + # record { + # body = blob "not found"; + # headers = vec { + # record { "content-type"; "text/plain" }; + # record { + # "IC-Certificate"; + # "certificate=:2dn3omR0cmVlgwGDAYMBgwJIY2FuaXN0ZXKDAYIEWCB6TamgcIBRRI9+Lfe6n1mQhfqXmFKDoOihriXzPhQ8YIMBgwJKgAAAAAAQAAIBAYMBgwGDAk5jZXJ0aWZpZWRfZGF0YYIDWCDclbSRbugItvQEwCwQDt2dGNnmSWXaDfyenwBDFGQev4IEWCDN7xKU70bQDnAGR8er6+SatQSi07lHyqye6YJDNdfzOYIEWCB326K/dXJismN6beQyTC9LeKBpzbOmOZPkRjpu4uIkt4IEWCCsjlsVa3dA4Inoj23KaUsHLZTOoZT/Uqzog9gmkovo34IEWCCoBmzNJBeJUuPksGWjOP0JgQStmSri6XGg+//B8CS+PoIEWCApbis9cAc4Tv7tS97Vk+Dc14EE/styzggrRvkalYlD1YMBggRYIDG3uAnEPmC4tIPj0xDqUySASclS7unWnd6oG+IqIqGzgwJEdGltZYIDSaiiuufz2aTEF2lzaWduYXR1cmVYMLMbF+o1s///LvhWJ4sylt9/07OokAlX8L6+Dfd8L2KDUGgCzuPvmIy/3NC0+LMpEw==:, tree=:2dn3gwGDAktodHRwX2Fzc2V0c4MBggRYINCuA0oUZ982kzKVIIrBrs5i693coETpgd/s0JEVMozsgwGDAlAvdGVzdF9hbGlhc19maWxlggNYIGf7WOPqRVYQXdWkCA6NOG4MX5v19QXdD0or2GXsJ8YGggRYICTVHJF+Vk5ccI2w7iQhhyiMkcffMLtaKScYnwtlBC+BggRYIFce2lClRDSsnfeLc7YS3j0JsELBY5a3bbUPh+luB7dD:"; + # }; + # }; + # streaming_strategy = null; + # status_code = 404 : nat16; + # }, + # ) + assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "404" "$stderr" + + # this should succeed, with output 404, like so: + # assert_match "404" "$stderr" + + # However, due to returning the wrong certificate, it fails with Err(InvalidResponseHashes) + # see https://dfinity.atlassian.net/browse/SDK-1246 + assert_contains "500 Internal Server Error" + + assert_command dfx canister call e2e_project_frontend set_asset_properties '( record { key="/test_alias_file.html"; is_aliased=opt(opt(true)) })' assert_command curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" assert_match "200 OK" "$stderr" @@ -1315,7 +1434,11 @@ CHERRIES" "$stdout" assert_match "200 OK" "$stderr" assert_match "test alias file" assert_command_fail curl --fail -vv http://localhost:"$PORT"/test_alias_file?canisterId="$ID" - assert_match "404 Not Found" "$stderr" + + # again see # see https://dfinity.atlassian.net/browse/SDK-1246, this should be 404 + # assert_match "404 Not Found" "$stderr" + assert_contains "500 Internal Server Error" + assert_command curl --fail -vv http://localhost:"$PORT"/index_test?canisterId="$ID" assert_match "200 OK" "$stderr" assert_match "test index file" diff --git a/nix/sources.json b/nix/sources.json index 952522d22b..8c8774efa3 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -142,21 +142,19 @@ }, "icx-proxy-x86_64-darwin": { "builtin": false, - "rev": "594b6c81cde6da4e08faee8aa8e5a2e6ae815602", - "sha256": "09rxh6kjwy7qfsvvsy6xjzyn4r4zlb78k1qipi4k3x0w0ajvp0sp", - "tag": "rev-c312760", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "09y3q0ri294qkfp5bywpm37f7c7gd44xq8a2fx5lafzfd98xb6v1", "type": "file", - "url": "https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binaries-macos.tar.gz", - "url_template": "https://github.com/dfinity/icx-proxy/releases/download//binaries-macos.tar.gz" + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/icx-proxy-dev.gz", + "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-darwin/icx-proxy-dev.gz" }, "icx-proxy-x86_64-linux": { "builtin": false, - "rev": "594b6c81cde6da4e08faee8aa8e5a2e6ae815602", - "sha256": "18czg11v5hiczqrahr962wmjig3gcafplqiprlnx44kmzfhi4mks", - "tag": "rev-c312760", + "rev": "91bf38ff3cb927cb94027d9da513cd15f91a5b04", + "sha256": "0h8k4hf42grjhhs6nnl8gcb9k02cs4dm1a25mjlkf6vi3f6sx307", "type": "file", - "url": "https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binaries-linux.tar.gz", - "url_template": "https://github.com/dfinity/icx-proxy/releases/download//binaries-linux.tar.gz" + "url": "https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/icx-proxy-dev.gz", + "url_template": "https://download.dfinity.systems/ic//openssl-static-binaries/x86_64-linux/icx-proxy-dev.gz" }, "motoko-base": { "builtin": false, diff --git a/scripts/update-replica.sh b/scripts/update-replica.sh index 2df26a8e1f..ed1319faf7 100755 --- a/scripts/update-replica.sh +++ b/scripts/update-replica.sh @@ -20,6 +20,8 @@ niv update ic-nns-init-x86_64-darwin -a rev=$SHA niv update ic-nns-init-x86_64-linux -a rev=$SHA niv update ic-starter-x86_64-darwin -a rev=$SHA niv update ic-starter-x86_64-linux -a rev=$SHA +niv update icx-proxy-x86_64-darwin -a rev=$SHA +niv update icx-proxy-x86_64-linux -a rev=$SHA niv update replica-x86_64-darwin -a rev=$SHA niv update replica-x86_64-linux -a rev=$SHA niv update canister_sandbox-x86_64-darwin -a rev=$SHA diff --git a/src/dfx/assets/dfx-asset-sources.toml b/src/dfx/assets/dfx-asset-sources.toml index 28d2962055..2ab11fd4f1 100644 --- a/src/dfx/assets/dfx-asset-sources.toml +++ b/src/dfx/assets/dfx-asset-sources.toml @@ -6,8 +6,8 @@ url = 'https://download.dfinity.systems/ic-ref/ic-ref-0.0.1-a9f73dba-x86_64-darw sha256 = 'e1c1694579f46d544aa87f6387d7e5a4b096fe65015b1609a459efcbaf15890f' [x86_64-darwin.icx-proxy] -url = 'https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binaries-macos.tar.gz' -sha256 = '5783bba5021cf43149bc118789cea29f6462fd97dd78bdb776f8782ea7813d27' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/icx-proxy-dev.gz' +sha256 = '619bd5516aee3b454b774221dc0969efb0e3cea897fb55ae9b98241133c0c327' [x86_64-darwin.ic-admin] url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-darwin/ic-admin.gz' @@ -64,8 +64,8 @@ url = 'https://download.dfinity.systems/ic-ref/ic-ref-0.0.1-a9f73dba-x86_64-linu sha256 = '5c4967764e87d1b2945b1db027422633b48f08cd01d96ba2f622753fcb62c2a4' [x86_64-linux.icx-proxy] -url = 'https://github.com/dfinity/icx-proxy/releases/download/rev-c312760/binaries-linux.tar.gz' -sha256 = '7a5612a1fb7512d22dcd37627a9d626fbc282b172665a832fe2cc2b243789fa1' +url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/icx-proxy-dev.gz' +sha256 = '078cae8d1b711b37a9ac45a8501bd14c8099167b885a6b3484323f411c241341' [x86_64-linux.ic-admin] url = 'https://download.dfinity.systems/ic/91bf38ff3cb927cb94027d9da513cd15f91a5b04/openssl-static-binaries/x86_64-linux/ic-admin.gz' diff --git a/src/dfx/assets/prepare_assets.rs b/src/dfx/assets/prepare_assets.rs index 2c73ffca7b..f2cdcdf2a9 100644 --- a/src/dfx/assets/prepare_assets.rs +++ b/src/dfx/assets/prepare_assets.rs @@ -113,7 +113,7 @@ fn write_binary_cache( Compression::new(6), )); for (path, bin) in bins.into_iter().chain( - ["icx-proxy", "ic-ref", "moc", "mo-doc", "mo-ide"] + ["ic-ref", "moc", "mo-doc", "mo-ide"] .map(|bin| (bin.into(), bin_tars.remove(Path::new(bin)).unwrap())), ) { let mut header = Header::new_gnu(); @@ -182,6 +182,7 @@ async fn download_binaries( "ic-btc-adapter", "ic-https-outcalls-adapter", "ic-nns-init", + "icx-proxy", "replica", "canister_sandbox", "sandbox_launcher", @@ -219,13 +220,13 @@ async fn download_bin_tarballs( sources: Arc>, ) -> HashMap { let mut map = HashMap::new(); - let [motoko, icx_proxy, ic_ref] = ["motoko", "icx-proxy", "ic-ref"].map(|pkg| { + let [motoko, ic_ref] = ["motoko", "ic-ref"].map(|pkg| { let client = client.clone(); let source = sources[pkg].clone(); spawn(download_and_check_sha(client, source)) }); - let (motoko, icx_proxy, ic_ref) = tokio::try_join!(motoko, icx_proxy, ic_ref).unwrap(); - for tar in [motoko, icx_proxy, ic_ref] { + let (motoko, ic_ref) = tokio::try_join!(motoko, ic_ref).unwrap(); + for tar in [motoko, ic_ref] { tar_xzf(&tar, |path, content| { map.insert(path, content); }); From d25544641f48290816f31d68f297c292dbef4a70 Mon Sep 17 00:00:00 2001 From: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com> Date: Thu, 28 Sep 2023 18:38:31 +0200 Subject: [PATCH 24/29] build: niv advisory-db: update b2af5ad8 -> 9b6403d8 (#3399) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changelog for advisory-db: Branch: main Commits: [RustSec/advisory-db@b2af5ad8...9b6403d8](https://github.com/RustSec/advisory-db/compare/b2af5ad8564a69a69ca66da8619cb9137926f118...9b6403d856f71291aabb91511b53fa79c2758745) * [`9b6403d8`](https://github.com/rustsec/advisory-db/commit/9b6403d856f71291aabb91511b53fa79c2758745) Add patch version ([RustSec/advisory-db⁠#1794](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1794)) --- nix/sources.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/sources.json b/nix/sources.json index 8c8774efa3..14c77ab188 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -6,10 +6,10 @@ "homepage": "https://rustsec.org", "owner": "RustSec", "repo": "advisory-db", - "rev": "b2af5ad8564a69a69ca66da8619cb9137926f118", - "sha256": "1yqmni1myslqhz8jpzxv8zi12p0sb2k9hz7cmbpl8zs7vw7a1c6b", + "rev": "9b6403d856f71291aabb91511b53fa79c2758745", + "sha256": "1b839a6bja6x1660737yfv7b7qfldcjd36g2s3a1v74q3f6zv5nw", "type": "tarball", - "url": "https://github.com/RustSec/advisory-db/archive/b2af5ad8564a69a69ca66da8619cb9137926f118.tar.gz", + "url": "https://github.com/RustSec/advisory-db/archive/9b6403d856f71291aabb91511b53fa79c2758745.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "canister_sandbox-x86_64-darwin": { From a368e873e00d39e0ac5ee83af7f004747e49cf93 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Thu, 28 Sep 2023 10:35:13 -0700 Subject: [PATCH 25/29] test: revert: pin mops to version that only writes package parameters to stdout (#3400) This reverts commit d2404ec7c60fa9a37cc70eb489a14509e8eee992 now that the extra output has been removed. --- e2e/tests-dfx/playground.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/tests-dfx/playground.bash b/e2e/tests-dfx/playground.bash index 25d04ade1d..c90316adb9 100644 --- a/e2e/tests-dfx/playground.bash +++ b/e2e/tests-dfx/playground.bash @@ -16,7 +16,7 @@ teardown() { setup_playground() { if ! command -v ic-mops &> /dev/null then - npm i -g ic-mops@0.27.1 + npm i -g ic-mops fi dfx_new hello create_networks_json From 344225d183ac5994f8a4bd7684fa80ac8537480e Mon Sep 17 00:00:00 2001 From: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com> Date: Thu, 28 Sep 2023 12:29:48 -0700 Subject: [PATCH 26/29] feat: Bump UI (#3396) - Add `merge_init_args` method in Candid UI. - Draw flamegraph for canister upgrade. --- CHANGELOG.md | 6 ++++++ src/distributed/ui.did | 3 ++- src/distributed/ui.wasm | Bin 960815 -> 1601828 bytes 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b53b000f05..611f15b583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,6 +79,12 @@ Changes in behavior: - after setting a custom "etag" header in .ic-assets.json, the asset canister will return an incorrect certification in the 200 response. - assets with certain characters in the filename (example: "æ") will no longer be served correctly. The definition of "certain characters" is not yet known. +### Candid UI + +- Module hash: 934756863c010898a24345ce4842d173b3ea7639a8eb394a0d027a9423c70b5c +- Add `merge_init_args` method in Candid UI. +- Draw flamegraph for canister upgrade. + ### Frontend canister For certification v1, if none of the requested encoding are certified but another encoding is certified, then the frontend canister once again returns the certificatie even though the response hash won't match. diff --git a/src/distributed/ui.did b/src/distributed/ui.did index cc6b0e9fe3..092cfa44f0 100644 --- a/src/distributed/ui.did +++ b/src/distributed/ui.did @@ -1,5 +1,6 @@ service : { did_to_js : (text) -> (opt text) query; binding : (text, text) -> (opt text) query; - subtype : (text, text) -> (variant {Ok; Err : text}) query; + subtype : (new: text, old: text) -> (variant { Ok: null; Err: text }) query; + merge_init_args : (text, text) -> (opt text) query } diff --git a/src/distributed/ui.wasm b/src/distributed/ui.wasm index da88ab10be7170f9ddccde7a5ddb435003360ae4..9458baa7fac67de41e3651d0ad6bdfa1e28da5a5 100644 GIT binary patch literal 1601828 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

0T_*ZZnN~Ct7#3eIG=|YLiW{}E- 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

! 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�kXQ5p_37Fp#SWJ90*{ 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

Ktz|C-!rEFDkutKGs@b9c zsTD`!uS7ARAv;IF;H%nHUB^bZdB-kHS1fAVHH6`3^vp2I^epeRH{5c17KyX`o`)LB zfhrPTJv}#!o*lAgRwS2W|BGC5tvOoC{4kJ zj2W|ZIjwF=Iawr@9z)(%7kJNaDkbJRd*V1T?@qOFf?T9U8I+C|aik@c2#j5`kK3kj z)1s1j!~ksLg8E9RGy1g<%c}Dr6I;u7B$00oC!w+-#eok>t}inLd8_KIT`3+U);7TM za3UKHipY;88XgPUd2lR*FEAF@C3#PH&YCCpmJ*vEXDEsG#!|QNG^jhau=MQ z7_%7AWd>F~T?b}CuFDJzgZ}iym__k28POz!pvb;Sh*|Kb=fKo;#RDo7eWRux5py9W zI#K#fW^p`S=(6|0=2V=06tK{!X_*9$fN^;V7+3Fahlv_QLztSQ8H-(vyS6kwFtsVo z)PCTqPjjPbr8siCY6GT*n&<=<25T8nxIO5⋘;B4S^HOvKLY($P#m1;$|dC?TItu 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

E(- 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 f&5vV#IxkzIG(U;?oup{4 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

H$WQ!H}H#|Q4W$gky1K6=eS#)ajJ)6(ei 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 z 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

  • QdCBUfpAYcUi83+_L{VVbbfC^3bEAT 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≈NE%4pI&289}u@f^fd8RuAB?u89)ZN1(Ifr=IBU%Aj1L&4Y*{uOKrVj~1?0}9aG?XJ&Q7Ir! z0%YKUYWk#_5u_NvG3=5$a9Tnelo%~;{6*&l)G@JDAx_7VR6hR4F{sZI>1su&ricc2 zQxY;761K?6QaqfIuZ&2MB8{Y|mQ;ovjA}v z1!;cZI=-k_1tuEfoq-&TZe*l30v5Dq5DPp{Jpw>vXGxT&!WG&WAy$e|9HizFqVizN z0z6X>yL5C*-ztAKCvu*@)6xE93=)b5>TjUcnf-d$bbMU9~wR)5_1EgKxK%!rG+$liEyjY3mnZFz48`;leJ0? z!P-KLjc`v)2c3{waiP{eBXI&dnu9p_F952dZax}lpx#eNISqR)UZPNYX@R)jjKRUu zs9I9dNoa;dhW}FlhahPJXaqG>1!>}iio7Tt;5)`Hlyp8pBAc*b6-oksXo^ItZ)&2_ zGPXaQND6jI1D6bZSI5K#C@qLITF z2(2NZp`n%pAn7K$0LY#Am@Y=?| zAlNnHq0m460SrSTbRLs~o1rOU)yRdNEZ73P zksd$|Zx`@<1vgtvM#15Q0UYV?&^lmifI}ZFx{x!4g>{T4{vah>;w^k5ZL?w$XhPs^ zcwsbTb||(m7#MNNtDY;-2zCJ~pBf-jisGmQK*ey-Y_h-bCv2*uQ|W=DBuOxHWONZwkyoIS%D^`ovF>8Qc+`J1)<5VK zz)3dI-F4?>{z>220MYfZUQrTU(U^6+lhwK*to&3N$*~L;oOGBB%+_mH_Ik+RZ3W589pKqeO~$d_N>& zlTrZL7e|5xCkl3rnA|GNa14g%>`VhO9S5e0G2<)~%t}b7q(Nj*d=1Xlz%RcM0;muR z1#;1uVPLw8i-M5eW|n??C6>=JX-OfD19?>I&h@c>ZXe~M{i@cF?TtY%k_E%bq1_`Y8Z*vgA6cF~2tFL4zm@z2$ zJlqfsA{?}nn%a0cG^$!^iccWAs}jC~PDitvj2x%vuLHq(0;nhAfPv!x!dRyntOA}J z6pST}8WoX^Mk8~u7(7&>13>Gm(2%H+nijHr;0p;y1jt%L3iUWfcpwb|9c}PvoaY1C zMxg)*TOhjzkO=}U9sk3?9W@7zr~lU&Injv6UmL+|z*=}TYDWo|ovTQPnC{@Au~JlD zl)Zw=Z}iRyj+9g|=xGAqgPeoQf9~F;N%s^vz)KcSWw>be41VU=%f|h$NU-d}MUgcs1q?Vx)AWQrYRTDL<#=%81WW|{OP%%ccBBaWQQPuSQYfVK0STyLi zzKyD4!zEIJE6CoR{@R9WrJXceiBL)@NGLHw51>DhBmq@$(u6sp&1CE2|8wi(o3@@P zL2XkR<24%%^dOsz`_E0rHEj|_@#2lfX*P;@BH3($AjF9=o)HHUeIwNH1?5wt7l}<@ z#5BdGNc!Jd89{nfR0qt!1pY)daut~bA5v+U#EY0yDuH-jpecY&k3#ooR56NSgH^_f z1{ixVg==Fe8LV)r%`uOWs0oHqpr-|P2ZsnMBS!NB6{e2axJkk;prYjZB*>%!XHac` z3&bQ4hkzSm-6Pi*8gf(vo3MbUE&%aJ=4>&S6wx&M38z82f^-EPct$#c2a*P4wlV>- zNg)!a#EB(-hHwZ8<)dRr3m+t*kno9^8OER>H3Di&0Uj)BivyU%)RGM}q;S9|1!@~e zQ%6;^TI|rS5`k1fSH{u^MS?8~w*ps~^aM2xN2x5qo{zW!woC*&06~e^Cdh{iWqVK; z!9;hMA)dU+9BnBY(}a#tm1%;yFk(Y&@&AyvW4n}~QH&^@X@GlCx`?4E0%U~8w0dP2kl@VL5yvQOL856IB>ul`mE@Y> zi2yhPavn%}71K_D;Gu-X7A|m@2YC+M%rw}Lu`!O6El6>i+$t@tnGUqEXa~HQ&S0#ie?OI(hkJH1QPH> zz|_=Daf+0-h5z-oXokSyA(+N1lt5uP%m5v2e&8TXf*N@J-y^I97E(>xAfEy`4U{DZ zclUx5t@6L6O}35cpC)Z1xfDtKVAn*cF&2m=;gzH2Eg1cUVw$7C)`x5Y76?0=svJGT zndm%6?51$gxFGK=b%PkQYEGh2czP08p%IlvMhZA!f>*-?DkBALLrsAc6sj;D7c8>A z#Tqo6Ib(Jbp&%M}&c@~j<`B?gr{Yp6A0?duVi66eLCBeg^f{n%QTT~b{tq$Oz3Fg@ zo&<}6y7Ty-clU4mP-B9c2y0+ODzG*_6=!siPtXqih*R3aqdj_z#vUPYDxYc>A-AWZ zG=)f==qHYLNlu_qLnwCkW2K=`JQ}2vW*k(^K=W53|3(dz#MNr4I62jD%xrpg)5uv3 zWJALRxXFNME3(I|Kbe*Gzh00 zgq4uor0^d0ZPS;y?uTH)I2Qg}7Y4}k1eBlfPCzH%@e)8+(5g{E%?BDaIB|eb8$wk% zw(u=%EVzKwD77Zv++3a#8^<+Mrier$Gx!hxe}u>^QY67$?2$8!W*r4oinmt8TbOYq zWTgnRiJ}NOUJ2}jOi5${iz$&2z5J&d|6OUkeHOyuf8Bo5(n!0*jEDTA6J$)8JenGc z(mH8)xMR`w5?s~!U<1~1ga0rXB-^(C8Q&o5**Re8HCBX zIbA1MI28njR6G$OUr0Ej^OX#wP3J?#bdU;=y<3JDL0Pi^vIZ=!z3ZMI+Z2C8p{W5s8KHW_&>D2>Aza-%ZF(j6W&KCXhW& zWrx?a(aTT{S1k3Kk`Zo{it@)b5x!E9zak%wG^!y`85%zzO_atja5D%;aa$_WFe2{= z3fR$=Mh%prj9bVqrvR~sgaN1(RE?v64S)%>0qLAb$9cp);h+fY1M_Sp8^t|x@ZH-I zY;oTl$WV@10|Dj)N?^@na>w6jQX|7O^p2!Rb#ineWXQ!&tti2mt&9c{URV(-K~>a? zC?;0`Y%~Bzl@1<@Iu(+U0)$}@<^M&o7C@Mg91F@(I0{SR#lXiP0t}%otTE<;rU6nH zf}&CIiWDVY0Vo?bOlXI}6?0K@K+Y|}aT8M_qsAIV|Bzb|OWzB}dE8sqpmDB6b>0}# zgGke=NJ3d%3Zwx59BG%dXTf0&LKRgTiLeqjZwpMj$bJherfv&aEOCthCOtDSQ>E&i z09nWI&mdH*#T_iE2)c&=tsvOXz|lf3OA$vkvnEsBA={#AW1*C}lnAj{N>SAy=7Rk7 zA$5>M5%af345K8`$e)9bH6n^bY2;Jz#xS=U@S#(W4JX zkDQmCxY?k?@ve|G0^Q+guAtzx!48h{?rDGx!Z^V389V@y3=Kd6!5It=snL9dS_uqK z>~9=kHrijHkrAM6rveFpTD=%3iKW0EEj}oGM3^K5v730JKRk$Y{wlF@KEX38|7y}dnl)qnxbiU+#}wW#hz6%b71{G)|%c#tyOg2jO#MKUH4j9JYQ z2;B6flsJh}87DRaLL-4ZPhjVa0)hddV7QeV@*1Jko?=)IwXO(L0RhaLaRtbJ1wt&j zNf5u%D5Z*iAYC0ab_HBszzdK$qO5bo0s&UzY=S|F25URyfCj<<&;<-2MCT?@z`%gc zs4kdV1~Tv9LOhHDyzY^9!T_=1X4nD3PP1L~*FGUrEfSn5j;WDxpcYeygX7t}u$MTV zX}FwtAVA>Q0wDxlP6WP4=xM^(3E{zpij zgd?qhNV+Fcc)19qcx`ga1HH#z;Isx(@MDbwcO@TH1VdF6-xp1B8wK&AaV5bq0$ls? zG2%%H(+L;?a3Qu43K3f}6_o`!25*orW{`8@OVhE;tw;k4r&5Fr1Tn-cjz}kp2L?)P z$@LJFONo=$b{UCsG*g|_!z-a&x_(Ty6KzyAl zj0}CjR{>?(!k_TwF|S4^EJhXYFkORAs)5SDh%W*!UQNBmESv*G(e??+*T386q+@4Mo=+;4S0rsNpDrpg;+vyH&x1L_K?{8490jG;1*e zn+RO4RBI`O1aU$;sjU!VL(s7rB1SZ#cu4F=1d1eBYK0jV>;)cQh{}SWsp_x}#9H+h zRtoJOf)B_Ago79tE}xK)KhzQaD6EZemlE6C%Z(+-s7t;;zeI2ehXvf55sh8TVPT66 z0rk)2!1Wg*xJU)uRvN#IhU-A!;t)uGDK+Df4r)9T3@-ReL$4$<5!iv?L<~6^HWchH zM{G6J1O{QY;}DDHgfdJKBjWH0#_0uIUlD`l35*a^usel;WP`}c_ zA;SgM9HviTH5o)fVylp$B5mL~N+2ZKER8k+F$*lI3Krr6luS*avEsO_gp?QQVQTsh z`v+VKfy^K-g-ssY!8q+D))Co*)NmoGmx@|xP%wNk(Ul&AOa+&Es3<5{chIgPcbN)T z@k&6NAsh_|uMGZ@)xjf9L&_6K7}6ndd?aNP1V=ECF@)sJ7m=7i0`9KBS&WtAgvR1= zN@Fp)Hii&HRFVf|H?iVcLIO6(y~eY#v4G@+7HkHWWnshRa4oFi(S`&0fo&lF8^gwm zZNsyM@(i{mi)UjESq!<5*T|9!Em&Ld7$C*4tgW~l4%D*ZSa5l47LNt_16YN5EpWLOmey7P7BoOMOwp1Dc`&(FEEWuc$Fcyp*+2=l4GX4d4HJh7@Ddt=OgCH$ zh9%3&#)4-B{?k^LHY_WaC0vce<8f_lta;Yf3>#>T3#b5thE+zZ!iKek+qqaEx+1i& zwt#Y6Yik>r3IN**tr3HRMhU}aTQcA$bi)F`K?*zo03aSDpo9PMEVwXgc(k^(f^o0` zF}NI9XfE3V8sl;~fQ|q~9s~`?9tN8QgJnSn&>5N>h8i$( zKnoi#n+*T}u%I=7A)uAyS^&6VIu>jTfG`IV2{C+|^##0z$b;*o64P8#HAn@JEnGf> zOTD-p1`i8o#fS!wzO)z+>v7)ci2Z`p0@ybv>=$GgzUuN?3Z;YN=mCDpF)Ns$W~4uRyhMbasfi*3IxavTzuWZy%(pWI0-_zSP+L~ zAm?YeqbC&Iw}GFl)h~%WxM(s^91&DB6Cyb?ng$_dqB#&kCYpd;J$ecLh=xuGR%qOc zbW$9`PL3qMz!OWbtx!q{23#s-LHETn*rQ-MlGh>-YcLonEVQ!%evCp)Niobf1ahna z)Wibx1b_ywLy!lo>EqBJ2rL|@gfkl#ng4-1v$6N^*M>e0n7=)nWee5dzB*G>+d9-# ziaoHcLep63NJY%IU2z1NPwA~6wU;j4$;w+CZfq0R%l2v zAS(D@l%e00M)MHJ=*Eh1Q#_2L>86P=7Bm3p9XK`A5;HicGz^%F|K)I?RwR-$Kn<71 zvUP+!Odvgg1S12nMq;Xjni60tkn|rQAqKE0Oxd>r8i zBzD1nIAIMyLkI($;fDsUoZ7IwaBq1zpN+SrkaSMQWNaR%ctEzI-K^!d}du)pu z5dTvHknJZ5bl60BKIHHrPtocj;k_!t!k|OK#hdH^$P_4F@y;}6st(Cke@<67sQS!= zd?=tP#HR^55Y0P39I*2^sMN3v*D&Rgu=&{3O<~F=5ejC46MRc!VMdYap;SZwFwlVd ziK3*pG%}R!99Y#$*UqAo zl?=biK|m(Hh>nA#DRBX?%gHm9`VFSuC!|-jA3;$M=;%s#VAH4?pQzxypw^zZ)Ddp` zAUnZ-VX22&gaZjt0uaDDlrp4mYI5fZjx~s(v^aaXG6T~WgJA{)ZBUu1G+zEG@ewk} z^@RUbxncx}qW=#3=4BaxVUSyfPaT2f5TF8z{B7m_mK31nWs^n{;jGw3Q$vW@5%?y@ zRqKtk;W#%GYHUmu9@8NE0bp>8pRkC0+=)*WolVLYu+6bUMdKR_$>3vE3_20xj+hM| z=Z<2o5fuS_mdd|bDFMZ%0EJUxUP_?Qm8OTQPISta!rtMCO?d2~%*v=~+-gim=OMzC z5c{GwOQTP=m_HR+1+yk&udz3{l^A}57^HG*)bRI)P8zxOBSYjrxJm+YMuQ8H0*kuG zJRY$O6pdXxutOvjvjeH&5h068(JUiUfC|U;D5_>JxO*-(7UV8V!C19`ik|J=WZ;vZ zsDvbN1jO@D0y8wCo|>)hs2D~HAaZuNh2v%xnQ;4s)oK~Sbb zV}OF#mWN)E&;qXU_@Uk&EH&ij!-yn&^8*8lSPp8V<{iYzPzF4_eNuu&34D;BHf$lt z<$~E{!30GbmBA8DHw7`6Fd+jq#?lI)U`BtWfeBg&_lt2U!FSR1_stAQK8WF~A@(NFaj-Zs%+|2t4`$ZyMS2G+o^gfhHlK zTE-S#WDqRKm$W z1brR~;)LbZ^soVff+rME4Y4VvwL}C|g|U6E*&gsK2yLg6U~Y~e5L1e4)-WF=un}Uv zjE$RuR%2ZdRMCI7oz2Z#$X|sa5;InTT)(n?yxqEW?$=pMORJlQyR)B`R;!NazmDzU z&6cmRf3&o^G9*q;J|0d^D9{3qr(LfuLCQeqJ4dt*?#OEQcynokla8J^bnM01SJxO#+c%}I zpl)5=n$$mQZ4@`B-dwlpy4J=)H+1G6^692^(B=5zl{s23FXToUSJQ`0+$}Ebw4+=1uQ1elwr}hKquyGM zJ?^i$b)}b+*G$IrqiuW6EOlIPZ&_*R0{>+^N0Dyt^BKH$TD?p%4Lv#x8*y{)s>>rX zr`-26NYeW-lbY4v;Oq0wJi9ChCp(U9D*r-_mGMnJ(v5pC7$yu46#! zS$-4sqhJ0BUhv24Ver9CeO~VOZMXP#pOl*)Pl&yHtcWzZ@XBT9B46zZ!ZfEV{-xI@ zt{A4@&mrc|bW`!!)velV(Ux8A)HSnIJA&&Q6m?=+e+$Oi_ zES;(NQg&p(XO|?SEm5Hd2S0r2);=~VmU(_$ z)v_Oj`kv!8KGkqu-Xk{g$%7N7ctqiWhTdS%%vAQ@wguaeh6Q z-iSWvQs!&8%6ozL0TAN!l4)%oYBJG1|oTuP`rIK8h;t5MI|{T!yc4Gvu|qIeqvulVhFUoj-oJ)3}Ur z@4J6C?C9ti({bP(H!tns7Y0pqEYlfm)G>QlM2?YBI}bPKtgfr(Gn_qhI8lZN2kvy7 z;6r&r&!9^!dO=?orx%v!w}dhv;y#4rOh-p2 z14_tZL6L9NpcLbjb}2)TPfwdw=J9TOjNcymlchY*_TpAz!PeRGbMc=`29rT)6% zVeU^o9ER83H;xUNaOep4@bJU+6Y^v0YhtSB6?@z+D%pA4X5YP=XZi$nwKAN0AY)?I z#JL|lO597rR^*-Z%6F|_{VugYXY!QEX$27lZ6;fPv9IQSnemzXWmI)ZwS&c(Zg098 z_qon0jYxQ~F?#0Lj(Iv|Iu{MQ&p#HO)$dW?OMPx~%0$Tz_uslwO1t15clhkuZV2&6d~g-Ltpn-sPi< zg9Z5y4vi1#J$h7#!~RVVzdfod4R}JTmy&;FIDv1ACvimb_vJ z^9D0)Z28zB`z-gBOZBC6>6$X>$q6UjPOdnyp`Mc5Hu?Ien9tu{SJ$knO}X;P+`L1c zS6;!mTbF|uRxW&Ov+w-l>uV|t%1@SORxhbIbYpvY$^8|TA=M2RZj~*3m4B^n)#<%c zXaBMPGpf~sR*R=?X;l}zevi$bZNnHWqy4=7mhPrB`x_RC}oN$Q>(h_u?9lPx2bh5G0Lx^Q3gr#8wkcE8bmxeBoNf z8r}Q4#zO;!oEq8Hi!nTI18;K0+UymJyDpyT@ueuYYGzevQTmb$>Puw=p+aT9y+nW*JuV+^T$ba}f+_}at^*G}l|K0HQgJs?F z*3{iFuXGsx$=h^z>iT!<3i$;g&rE5(KX(j1H~(Bo-%Wi(xKE;8#qVwoxZ-)8pR;%I zy2a^UxkIk%ty=}g{i&1Jl#Ux~B)#?FdhnWirkz&2Sxmi4zx!iseDak-#-T-K%LO+- z745##z%mqFdY*P8&G+|nk0i8^%USYsy}x zy!@npqjv3J&eU72uV!3tH&u_Xzr0sr=*naJMT_oi{yvwlpUK$A^fO(oS3a)dNK~y~ z+Rg+?E$5ZE|MGORm%YLm6B%^#?_;l;6@0t4GVH-0&VIZ2l-kZEy+VR|j+ztnWXy|` zu_ITF4;BVruKBQgLJ6xxFE8a}(xXRRUPNBY-?wGYlD!kc1|KM#GUMXxW&Q1CdU23Ll554kQ77|!I?tFpit~;^8iS>m=4g22pC<_a#^f~lPt8!S8 zFu^D3{Y4r5bU9yd%8u{*8=kK=T<&HyaO+^ReJ-)l557L=RP(5INzLO0vj$F(zK`Yo zXxQ;|lJ#nP%7twPhfV3(P&K7Pe&q}Q>U+1=%{>tl`r?+?`ar>?$xliL zmZg8WnA>}u`9<@F)H%QJ|5V&FT{Ft<_s51>dEJF4H%k_mw3)i1@Xpjj4R1^HZ=~Nz zU-(3Px^`;VPvM{Q>leNo9AZCY%H#(QmE7u2Kg^GY^(&k`HJz0sU{PMW^X6>PYTtkL z^7dz*o@}*oNULF|JKyTDWa%XCEXvh}+}6|o%v@G)J?mI&pEhA1BYC?!O`EYl_(o>o zFRh%xXDfed)x5DQYwxo9<(u5kF0-ul&t*=ZZtbd-(@*OgwQrx-PwiOm#Y2r!dr#Xo z;Ke#0=11GtRt`2Nc3xi7V@l4{Hc|Q$ZSp5&bKv;UDZxEhp{1oi1pU{_!_VkFoGjK! z0!AxGkMQC{rUf_-%Ob?g@Js@8|4FREJ*z()E4Pq)E(4T;u?54hCTxa~8*( z!!d&rW{^xlDM~hzDh%;P$ab8un+q}Z2L-h&iU9RIgk_?RRR7@PgbY3Eo}>_4h)oM7 zXpX*^vzaV&RohV24!!03NRq{Iqn*LmRjL3Li#-@1?6C69zNmZDs2Tj%ni^k-ns(-B z0vZ#-p@qE#aM^dZGgpD$zH?rOG3Q}521uMo2EgCeXldY|neZQt_zTYiL!+OCCc$62 zhqEvsxz(G{4lDHnkN&nDF=%}F_&zxln#ZtnCK=PB*jndIT%VlRdUthmZAJyvj(sM> zbX%`>hO~pPchMLbZ9PmfHX7;pa;TC%cUe2PpSR85wfp3W?Yk8tznnQf*lASp@x=2_ z>wl)dE7i>=f-m@`m}N#<~XfWMu*mhXFA4E&$QjtsaqF# z39l||{l8cL4-)_X;l#5H!>n`{t2Yj#rnmVVJX-3OeWUt^!hJ*1cHQdnhQIpeNZHi+ z_O;tq-Ptw1=c5On6*`JRl<>#LTYW7Ld2Z+5F*=3q6V!V9XSd7k4ZC{Khk2T$U!Cf{ z?bhlPR`G<+k?B9K-L&oD({XQ?S7yQirbjBb`v<+@#b5loBaSk<{hpKDb+Seb3JF zE3rm9AGG!L8GpIrsptM53G_l!TFJm9QD9l3q`fpIXIp9r^Kkpp9`9x*e((y28{K*7 zihvRIp;cNxa#wZwHT3s|PT{e4bY3p_B|5%qa94VD;Jx*{`+jDfB8G43RaeJ6_t9y{ z#vwCj4!0?C?J8Y6{c#qf=3t;sN!|8{PoC7-!Tak*4=$N((raH%E1en7+Ro||wb*Cf z&>`pV?z3KWaYR(8a{Ae*odE&VupL2dKYTyi^Hf7^@R(6M+@rh-9$CGvP}-H6bm_hI z!{_r|R?=CFet(U;VYFOQ~6Vi%WI8f@wmVXt$3-oWA&ebO#R z^qfCy(})S$zW0aC$!_0edydYIZ=!Zr|8RRPcv?R*ZRBU1fm$c5E{AeTX6m^MNmxq4uhc2mNE?)Ga{mL<4obR4Fz>IS zy8QCnS4#tZu1!(L()!<7cdHlPZe3-cZjjx}#{GetmfS}thn;V*xc!J})pr;C_*x#A z>ZpAo#P(LjvJE%KY6s1DkpETgz28YQ6XXY(E2n?FHLgvJ(62<#U(Py~ z#NFX$!pT{9(eecC_s*!7((~cfg2hK&Zu~g+EH`&lmzz2Hm4>w=pFOVpVQW)8Yx;>N zV-BBZZ*?*o>pwIw{d)%Q=-~2&cSpHZpMF5Oy<9IaEhuPg*s49Ha(nYt*J8EBSLWm` z4YA2{duPVAip$J>yzSg*!?44iD{|MgGuWorV`^&a%SHVcFR^Yt>Gty1k@1JjSFY<` zTeHyDDwUctZ29Cin=bdQ-m&NP!Gl+?*6uyldE$j719JIoi*iexKi=>UKT#DcxIK;8 z_Q22jo^~e+wR@d-$UG4~Flg(FsMR0Fyc#=pZE%5I-MQ-AL*E#l(caVIe{D{X&JBAK zQ*<_Z(z(dKK1(iUKmC|4-ly1**hR77&VFUTey0m3EFJrzt-*u-;~q_M-C~m#Jb#$U zcTcZv^vq=KH)+F1kjI{NN46=uQ@e+TQ9kNkCYvC zTlfJ+m4O|^+)3LKvj_DEq>l@9)$Tr~rceF{qu;~d-CcXm>6!QBZIN-0S8sf;S8U%& z=3bk2K>Pcy-(41UUY(n!GtzWd)&M;@=g8o$!=GNRJ{;TLX_?Li+L(D`Jr_nQ=5(EI zrMKth{Cz1`dcIp(Y|-iI?8PhG&J}*yeW6;ITSd`nljtN4%!*tn_6au53(l&w=PWCx zyxP?DUDEfet)0DYG~{%6>9DKnY~C^5nOV0#cid~uXjoS?y|8A7-wdVh_{81w=idEN z{$ozA?t;z!v=k|CKx)2=JT>jzMAJ=sat_KTm~MYuwGa^TMRHA-pwp|T%^NW}=k$fS zAI`c2#*XcjQ6!wDoY#HA;&vaB^6kbhU&nirboRtc8gFJrk<)X#-y!?=1P)zs#X$LD z>6No1y59HNbi=Rj#{+xHDvllWI@&oc$~R|*U*^s)!&XbZHfB_=sPNQ|wATB$+G#-H z$taG;_QWEWlGyi*%=ACqm)fQFSQ{lY^7`mo5q`RiJ*0zmQF6y^@?V2iIkunDDeEdH zG^Gb4v?4#DuXRSUY?RLL<6o3smz-zcn0>vX=V))evk5EPKdPJMZelX)VQl7|F~SX2 zD^23|FCDY#nQY{U*@9xnsUG{qxtlHW+wb}QFu~&b**j}j@6S#NvmAMA+_D*K`We6L zp4stx(8r37(;f`!X*_Fqcl+8lzQNtEKGS=|JmO^KoOUfBYIW5!{{>qc`mB6ZHmG-2 zrK5I#+Rw*=2@BlHo~^y>m;2VX{i|*1?oX!ke zn*~d`K~yIsQN}6IU?|Nt^08?T>h(K@|48th*-W?x7GJ<<;`*|wVq)h z=;Ceqy?Uws*2ZMG(;y-#+*vHio9p+%c)c66}In!@RWc1mCU8RRf(pj-W!Dc^eYlKgnT z2JRm6(Wj#@$me+Xr>`HxuHr54_4wYPI?l|oL%PfuuvG39Kl@Bswa7t`^~Udd$BNX+ zy)WJ_{@rVwWX$}GdsoJs>eTn-;mS@u?L)aB^v51&@WK7T#r$-NJ;E9`OuC%T_Jc>GT;<)AEce*9RO_Kc#f3EN(dqJF>h zoRweKYl+F*hWs-}t55Hb5BBP@s@L$-0c^t#l3}~E9E*EQT|VQk+pKBVOa9DdY%aAc z>!q8aUE8hA@yON)A@Pg_pg>IS9VaJzPTGba#O{%sczF^2FNDTmmUA4WmMn4 zyZ`xX6+x@wANMRRTs7hYXR1=y@4|8?ANl){0{{i17LDn${OpF?yW4E(;i#vZkvx+s zOc$E(|FGg?$y?{I2XCmrXSFX;56tfbQozGdft!22Abp04$VbNQEh#x&gA zKFaJMBYAsje8ggb}%C6p0y~>n$nvdo1y*bQ|hlc z$+i_CiyGc_&i$1{rIktJoHtb8Dp>w((ko$+q5TVq%Z*2Uk4>uCcuaSO%q{44|AK9C zHnYwT$?kh^Gh4vn&ZxnyweRdb5=E7bu6h<^blgkv=b>K5{NRA{>^YQ~re8)} zTi|$#9kMQVAa8cr!`lhLtXDAx@;_; zG}X-WiX=13^n)-jE$UM8319oE{HqRAJboRiOj}#nQ*$1_$g} z?b=ZIYOK*l<2EPsbmbd4#aA~`DNf@|NAH{JR=oLrk1f=WoAhqQfBL$7&yf$Ks?5JJ zbC>UE*lOItFu42u`1%c})A}B^OnG{LdQ9@fANHi-srEgMNbCZYw$ATQ@%`p6@Gp9;Cu4Q;Fa;U z(fiG|l&*<*?K$=HhKA8&yWEj?bnjlnsp8CkJ7{zM{HJ|=OQ_V2BFoP|e@@anp5gh@ z>}f`s<>8CEj((+Wl)pTk@kVuz6VUkFr@yH;sHfsHc6Lc6IxPud{ZH_S9c_%X|v0iqa4q zVBD)mQGjs=592*qt-5r~d+*fN*;!kWwBdZzn1bH)NiTw`_LdnB?9h;Rup-mDdqHN> znfS`QEgEjXZjed&6Y|iYx896- z^m@Blxf6Dp74sfWr7j-*b?Mc~KBh+px29awNvl{Gkg<5iHAnW*scp9z=g*u!#<}gC zH4g?YxIMsj&7eKIhKH=$lpAwJ_$Hw2*P9WW0+#GgxiEM7h5lD{hh$Hh(Oo*AY|*8O zZzywymbHFmQ+M(8u6LORhW&SL8Mmc(`MAL1z{^|hA0J&P3i+}p_w&Jz{+3hrbUxsu zGtlPB%t-fZ)2n}sl)N%J6%!@Wy|CD6NS_e~ReraYZ9aQi|6D-7vp7^lKafRIU!Rc0)UB?{z96j*ZgT4`t-S>q>SN8hTA@Y3xb2Sr6 z+fMvb(r)zdK{MxXH+Q}I{M@u0n z)UE182hrnW0VOXzs#sF1t~;~y*9|lcUwg6L{+k88_TO2sBDZU5;A9FA9@aR=Ne^3)gw>20ynH&9mP*veqmtkpR({mnG8E9=U z`=fnDSjLUG6d!ZXly7}!+I%mq=M1^UnwrX(ZElD9`7M3ZBipELa8>|w+{T7Gb0=F| z4BcLR_o#b++uBn{29yol+NQyLt|;W~!-rXO2AtZ{!(^;M&r!231sN7itnp6#(rV#( zYL;}vfMN3`b92(XQqP*`$=~P9_R3nXSmnHrxA4Kh)|*EgmlnQ{9vI?yT3*$c{$N1YqD40KuOEHuXqwOLX8u%nogiD8_4tePqm|Z)yFyRL4&46rtkuHSw@gldlZrRDDLL@+ zu;Y(e%RUu7=SPN#^g2Y-#OzmPWi=C`L^Ce>%wyg%5{ zk9k1VA*^#?6`nqqC#iI|;H{0g;>nFG3zwG5d z{pHPHi>y9wP1XxFyLvc2x!r=df0A@FLW*X+Gwoa#WWi4`U44b3$nY}$csywPe6x3% z2fmk&iO8!p(7n(ma>eHG-#x}zn-0A{U{;k~yuQA0WmS$xkMI#ceuzddKKFQc;3MC1 zhl@(5H$AJ@#je@&E&TTl_x$gF*ja83jB=Uq>ieR@Bh6iZ&04kgMYPX{4Xvv7j$uwX zIs8Dzq8XQCDP?-pPFkA`GLyI`W*=Rn(^EL$$*8PFZK6HvHoo6$4HEV2izBv7-dxuv zG;Q~>jW@0R(&l$4q)$s;?{w>aS%Q9DI)8`f>hS7@)9wYSj?3;Zd%djmfkThW<{OSp zooKpf#)Ngk1A6C%blCc5+i%k=U-;i@2RTx+%wMK0%pYpze>G{UN!7EXN_XnsAu}a5 zSq)4487ti%IF0F+Ucor=DzY`+DCRofY5B&VP2J^J^Z z@p)^OCG9E_jv1acZ9vB^$}JrZNYfAgu*-VU&UJuyq5T-oe37-Wykj=yQW-}# zbt=Dx$&kwvzB^{Mzq{eStoJ56ex1F=sh`wI1JkssCw`dNe`HPPS(F`%F0TlG{peN1 zqwc!1W)AN^a(DIetK-(P_wMMY|B`pC-`Bjsd51gpeS7#^mpO0rS(ADUnq@~52Hb8i z&-^Jed1I9sFoh-e3DJ}G+-SQj-Yc&mw94nz;sNtQdak{3il01vZQ7~&0qb*1drsb- zee%hLBaa>Cd2r`_Sxx!1b74`Znx9{C=C!A7FKB)A){jM##5(lul6jjge7#LiJ&u|w zIdgSm4_Uh*S%Sw4pB*@RDEA;h&0`okb?mEIaqaTi+9|zlvQmG{ubDopIM`R7v3Hb@x*9Y7rKc{JymO$h+(5=^t@2EqU71Vl9Cfk%bj92jqV;RPtcv) z!zL>~Y{ZkFqa8DIx@3j->g=N2mC{hXY0yCb&NlhigKY+UDf(o-$60zWVvH!(z3yC< zo?ffy>Q1Hh+xyVi>w=O;O~`feG&Bop?-0Ac=Uxp{`8nAI}(Da3yPws8AYlQvs z!L?scc-J4xKDR8dSAnUbG-Q*5UC$ld-WhR5g8TzD?mPE|-mn5?!Q^PP-fgzUn;!lR2U-mW;4QrOM8VkSv|@?a%KYpxzqe*tJObx&AA? zO~MPax2>%f&wA2v>BE724%YCd*oQth+fi}o+Q4?ninDK9U5@XZ;%>ZXyV3UdI{Rf) z2i^=-*y%feb7@;>c%=LF^r8veVV&KzyH9TWec$rKIl`0Lj;qpp_r7TPW$9Ts)s{z( zfmOL$U}%4=!~A{E+FjLpx+rW>vU$;4(*-sCR$cY5?f+|T{`2e?TYet(b>84zP%k;n zDeN<#)#cx}o|k@%dt=sNYpkOE^!L#K1-%=ezthtoCPxn zTqvk4S>QN+P+exjucVBzdUb6J6ff9%OCQdtnzvykuk}=$!akFxHk=wYWZTPuIrgG` zC6@M`dbE0#ZMHuzopox>x$E(R+y|{`0-I?rQ$4}QwAPcbMhF*qTr zV(_&ZuAVvB^-l4yvnkS_8K;7eMCP?M%G%PwyW&nEH*K5FditU<)#A+wMHybEdUEZ0 zhvSKi#WA~=_*ZrOIqZPZ1>KDoty+)EbKZ7AVLQ$>zhHRP+v}J1evU0l@y|Q-)8ftW zAD53fY@0C4Z9?b`e(RnWHifq9Q}Sm-${eA~4zmuHHaqg>CU*XEJji~?t$VhY&PVA- zuiY#hmNHOiA$Cs9qx@d@Y0{<_mIa&5=G09x2oKQ?`~TQ`53s0`z1zDuK zL?lT@K*^w@prT?V2PH=_j0)zQbHbbzb4HAqVa%hL9n6YZF??(7u2yvByyw2>p7VV7 z-shcm&F^2UYUjPHt7~s|RS)YjB_pJu|FUrzZL{p%lH|wxe%tGzJ>G3_OO4E)chVLW zxaMl9{<-|m<{z7V{WLQ2UJvbts+(iYjy@T@&a7ZU-sK3LYr`%YHL4Re_sh7CJ?Cm( z)qT4%s@2{1i{|e=Si!wxue060w86d8Z{HR?957oZ)7#FQrqB9RT3GAY+pm$;-?;>b zINVR~Q~P3~hhd8`16Ase3-#!#t*t#tW!%?EE&M^bYUj{R0i{M`jOymY3Z;bB3R_ ze$lz@rP+N)uk?G->_LyuH9P|M)Xw<)>QRMix4f4pWa)2LH*8q@*|*)FtgX6t^6qwG zL$fLcc5e*)lipun)91}bt5@5qPtLy{6!)g-%v$Z84)=7d`@3a5^S*^0r@xtP?3EjM z?E1EJq)O7UFkIlbS zavNK3SgGEY6&Z1@R`$!%UK{`7wR-HOw2Qmlx9QifG3xps{tI=FeYkRB`Ssz?{dA`$ zeDGeH{y?j1hu_Xdt%&J#Gb=7>%!Lmqe2e6K@0pILOAytrDACqul}`F1)!a?J5Na-AVJtA7iXrLQ@EyVKCEmS*OS zKR@j`SN%l(gTx_acJ4bS=k>Q~sasnAeFI!2{k#v3TwXT0OuvnGwHsju4-G25us8g2 z=%kwE(<#T_Z5y(_;q~s%#YPR^W%g6^3?I?1~3FPd4#uqyC$Qby64q?BHRR z&DR<^74EV*zIgs7qZTLDdLKGC)OMz`#_>DTW@eAP^X;uk8@cQL)UsYzU!9Df()9LD z)x(V|&g${X{M?C$b2h#2<#X`Sq~V)9E-lYx8N`6!2Uh3IX-iHf^mCb52Rep2m-LN68 zN(RhXDW9i*^xpjWvnD>eb>rTysY5Pg4|h{L@!(#`;hmA2OO{RE)~Le$ki&219Nv`Y zXJ;HZ(QBOL+F!+!=KfHUaGWWNTZ&QCi)$Zc>hB~e~U#>ShsT0%A;jCrb7>79hyMv1#*U7`o z6Yi;ePKh0{ZNeQt*`}asbpi&~9AmY(W3u)m^WSbKziIHzBv0ePg5jGVoe53~8geCY z;JORO`ORk3@7F^|!~Od5?&-_A?upd-^Xlsg`q#fjtZA1t^o4uxD>Z(5t?8rv;MlC) z!)~{!-=lKFfQ4OEx(nu^UZ?GAD{TAE%~O>^g!L(H@@{c z6W`#*C-sso*=vG*4JLFLcV+aShUPPT57$|-(Hq`J1BO1?BwSfJ>R<>4({n*Q~uC!?2gxV!KFtU*)&tv+0?XR zQ6Kz?gMRV*`ipRZM|GTZVQ-XHe9t8B;dgg#xW41`uH~VRhq%vL{N_y8r`?9wbvzcd zWLdLG)rx9JGF02x>?;}_dWkXbt+l!)JLs&qNCd0kc)aXA8v>kv-i?qf3t%8 z%S$iSS3jNq)!E|f@jGjl@0}R_u;c8JbBm)Fv|PM!cD>m3$7j6Va?Ah0l_pgW7n(G@ zGHXnH*4$wy3}gG{UbsHK&{xZB*~?B^EdnO?w6655EWIdjpq1CUFR^wl;ul|kx-Kqn zfA#nSsq%#rOg$q!#ZA zs>JK|k9*&+d)m9}Rl}oNZ#7!axa|Eo%4cwRv++jDBh-&Yj{0)%$?*9#N4NOg%uBxK zeO%o|tIziv8=ti%=k2#C0e0?dQ%3q}^;AU%`k>$LgmpLgws-c9Bir`ut9@|s;gP@f z@pp-ncs=Eudg)c+*L0$-A#Y)m zAj9RICnqO2db;Fh?7(XcQ*TVZ7dJZe-PDeIUsoP4Pan3oVwF{9iMH`CDmAop8Q9E5;x7(W}`@Lb=r1OIxAFIEvWZe2HxodZKJ5a0W-r9MU1}3-FI#)0` zZi!C2lj&Eld~LYpO5O1#EnCN(N$Gv>OxU#t4GK*gTdw(>)lAdiOZH&hdu8u;S~rZY z8gj;UfCKKsr)Y)0i=7Z+{dV5m8rN@*eQf*neyYWK|2n3>=UfUbk$=e?x_Ez!7_WP) zI!y`b9@J;WglFfzCFI3s7ZrzXJDs!eM)k5fyYwDc^^(2Kxu<$#Kt^1@-7C6OUfjCP z?gsnaynNJ??v4rFKj>PO`AM3|mEG?bUR@S#Vdh$|zurOHNhNy|Dq1;MYh-*~s5fnH zy#-c!mo@bK(_Rc#eLZ%Jdi{igA#tJp59|Z(9l9ELB5}*_x?LR`H$D+M=ZLS?;p8=@ zRyy@JEO$L=Y~6hAXwN#kykA_-@72ek#>j#WyVeC zifSd3-20bYeH7n3ExqfPh)VtYRzF*1X3zYslS`x0+y1%lLa=YOuOSYd<4(-&H2LoC z9htL-KPd{@Fh~2cN6QYQTCCg`@-4Z7fA>w^JEq=y+HG&>{%0Xw^KG1mgp`G!X;|xz zT~Th$#x7fQ;^iNk`@Pz#zy1Dghm1*02Y#JVJ15uH>B`VvS}h#L8h1%re9=)u?W>j6 zwe5FX{gJ(VjehN22etGvAB-QZeWmdUU#-xM?rZL>uDsyF^yV8UHJq-!xAzsR2JgQb zw(j5NeM$2bDkrNATNUq_wx;k&yZ4KxPkFSn&9aG+W*4^%Pd_#KaYgI!EbV#229~tG z`a0h>>d0H`)Hu7t`-)oY4X%5CX`iKO=ek_EJ#&ES3$HG&{hx=OEn5)q_T`xSvu|GA zHLCA{yU|naUN7oZ809i}s?`SQRWMYWEuJ8cv#+t#nv$9-M()9yPy zk2tcrm8bKNr}lN;UyV9c;r!zZHTrZeeY4puqiQW(*O`rs-Sdx~cVD}sweR6CJ69k6 zlp1X^PQPob$F`+T3%?#Jh#uq>a=pvgQx$KH`Lg~?Ko_(2V>*N%9BOj6={fahD^yM= zStlA-uvl(7*30tVhL)**R*$n?KUt@z8`~CbI=R*Plg`K*PaMkX?tlDp@w9g1w*`MJ zm|WoZPTOls&`3{h!)d& zN0!2861}Anozt~eX##-~r zjrT3Om| zb8hw?-gv-e0hH1y&@gJ7+m z&EmcUn{0Rymps{OP3HKp?dnDjEf;2u+~#Q0Yud8n>HZ_MznUj3H=lg^>Xn=xQ`|qs z80%L&IcS5^ipY?wrS@q?eRuYoWY=KM$FpIdW9pr&*C20N>dl#6+Lx!dXt^rp{JP~v zeJ14GsOD_pfR3j{%?6%!jaw5Rq(1yfZ`aF(L&A&ddN%vgbCJ#;J-bWF;_TBm&mc`vI`lGn;t~}DI+5M=y ze>9BQyV`5k{LamdcD6OXR%zwHnrX(nqCM-U_Z^*jCb!QhjZ=vi4}I(W$SkIG;J2-l zea6pueQLUww(6o~XUF8GzA>q9BDYWW*W3Qb!}@mVbDT2ve~S0KP};|1`K%cW=S--z z)ogmSU)%MY;-+3To-lInp*LCE*Xi!K)yTDY=aDtNwoSRIy~Aan|7hph2AVqyYeoKf z_~h8tD<4g(+^gg6<4p{o&1$##YtY7)AN=AqyfV^nU+n$Iqq^Q!jdobu^vTf4()Qmu zK{KS{%-Js*8@x9bG2^>MfFOwCRoG21)-p3{L>>v#1ZQf=Kjxz`cP$z#pj&vf(1Z*k$k z_Ku;ymyELSczRoy@xp06#+o!RvAFuG!QNgI8?}Eq>THeeM=EX~6FTpn+ta|TUR4KP zxpr;$gEv+Cg}NVXwn*;bd$~|`-ICd{Y4h)>L>YXZn!Ph;kWF+({f(YE&hLvJ7FX-j z-rnVIz(>!%=RV(vsek^Art|WqM~igcoY}R?CrG_%d!yWzWx9sr8pS+_XgPXvQq#Jt zHn=bO(8vD7)+sk1c#d9^q!V*>>6_z&>L-4#KeRM^`B0ya6Ak;-n=<2k)oc0MSzCgh zYHG8+4|*Q|P^JDltAi$!9eWk|=pIYzRp#&Ice*f8ebRG(uhY3k!vaRWh&kY~VNC4IngLH;^LF=n74X)g_W z)N8TH=Eaj9A6e}VgA><)ePeH|6Ue6Mz2%V9_Kzkwm&#l zXSLOx$IJbe^k3`Rti`lZl~q z#WU?{b;|u5T-SB%vf1Af_1AC8)Yv(r+nkdfuPjXXs$G!(+AHH^q3z?umK8VZudZFA z@%_Tbd%yaWm0j9$RPS|g!H|oZot?JrsFjlLdE#KLd3!xO&z?K3hFOztzt?qIDrT`r=aG zow3P^Zrlx+Dd)ueEb4^-~nOT?-U13Jpwi+Xw zcYQGB*j0-h*=4n+o1Rzb(?xIDr=97&)Lr!U+8&(Z^}=e>lz}rhx6Z38A2V`<^R%xw z>K=V?YSBI2G@Z5b^l@!=tgNLmcwle0ga(=~f;6mqO$)m{*Zs&=YZKS8X9mRhzVk91 zH-2NAeZGf_dtAy@UsA14BZufp-cu*N8@Bv)w9%N6_G3#&-@jhrh>lUago9fim-N4} z?V$bLC7&jwho5gYZ2IP@*LRdk`NJ!>ZyxcrO4ig6hk@ah zTCMG87hry?tl@(?5AMrdMj5TLsCll^b9bW^@n=T4&q_b@`O|LW%kAr`eEoR8OR{d} zijK3l=NZmzK4K-nyelCAa2X_I~w_UGmCN|LuUL zHzv(}p1Gv#q1kS|z5PcG?4_0Kr8PUfp3ksB);eSEpWak5cbZY8!}FfqtA+$_zn?g$ z+p^cK=R0S8E}Rs5#;~Kdn}NyDjRQ_xyb{v1)3r^{NB2et#Ha=SPQ}&VE{+Y(o^_>v zhhZyj4%4_>P^D}8>W53u)LhWMwAs+MyPJ-VxxYDdP{JP(`Wgl;G~I45z53MN@%;e( zLFs{CF89CGLi2pGf2E~&>Q~*ErgL(T_RUonzB*JG*R1U8nyMY_W(*tG=J&(v)GYVj zG3inDoP7Nq-&bviw#dvIKU>>IJx8^3uO5@#rB}Wc0}KID?^O-ce>@Od&J|9b*782MOO~+ z)^1_{;J)qGm;KtbJ^S44e1|c<1qP+B`ueQg-2X(z>3~ZQ!er`4ca~Pna~P2@`N=KU zdTqnI-q1Ds^rFd&3w;cqF3U5vST-96Z^`F@6~{*o)iQAyoz_b|^};33mvOas->Z=m zy}EVrmB2e^htyhfp#7KAvwT*J>ZI@H9{kMGWN~pf-3wio-M!YJ<579F}p2>zJU-|5>><9BmT%yzGT zr)5T~w5G3?MK8?n7kIR)>zZ~wb~W_+*h?><^w!zok^Q^2e)zEd)Hi+Ue{kFBH?xhQ*#f&>#Xtf=1plcwQ26~v3H9b znJkaI_HL=x$-2IMD&5gC>*jt&XQXao>9y8RR`2s~f9t`TUi;=8>~i~$s+W6*X&qjW zy58iRVf!3Ao%2s}OzSVPvr_HW(>?c9qD{9iy&t>@4ZJk*mR9Y4rF-AZ>{_*TQ;j-> zuO80SY&mImwOz)V%M6;oQ@cO&{^_A_u2(Pn(><}!tn)R4gBji>y5wkSWlNiD3(!jIzv!XU;(5iDKW?9#ADcf@{m%O7v2TV}DZ6QS zHKWn;eg^t&<`lixYH>$?Yu?i5<8DozIb6MG!OX(VCOVI1{C4;1^mo1=jx`${UwMF= zePMCCycZ|y96KLqTXN;3Nz8~*ySsPGD>Sq!%If-uuSrYQq*%Xu6^dg{ZhQG{O~X+a zX3y5{S=Cj2U5D0b?bSn?cl*@8TYr-tzhCU9v&cxJ-MRPmRJ!1AtwK)qk62k(#X-}; zwIF}mN(Xggo_Xn1J4@AM?cl7b*^S$WsCO7At2xqm{j6D`>i6Y`@Mwhh?8BOK zbyS*ZcIjqfa!j+pb$BH=t;sD%)v#!)+Ch8OhHl-)*O;1(iS+e@DmM;pr#@HSA!y@< zT8-ruF_DA))>>YNW@4FhxAqJ&_G+tziINk;jVBH_t`VGN5wT-y=ZVAhG12|o1)b~u z&x-!f9{qQmqqm3M+p*z&g%yudaU)OW>)Fv`lUs0>Q*>%vtcz1LUW4S~B>m|shoi?k zqMQu_yLy@08=AW~N$)yy@$mBP=-V}juO?Ew@(cl9w}eq&oXiy^oML0*2Vi)eSPWmy zSB7DLj)+u4x%AE?>F-!MxKdbnJYL-s9uXUpo@^E$k!l{F7-t@eQMxdAKu99Sm1Er2 z+6;ddYpzI`h2e!{SdAZZ$GeX3I;41vPx9;BBQYLyidht2F%*L_2QfIYa>Ae2LX=BL zh{8MS6Y*Y9{;?~T)2dBmNL);8rgP_nP`szlF#|*YwzaabXpQ$}HWNc_JEvrXBpUu@ zJCzIiSGGUg$}}<-1BRJKVIM?e>n+W!@cOWnRC8sHlp*a27bj`wx?td{e#%!h$p_<= zXVN&}j&kYsY^~*S82T_K-cfF2ksd7%NlQ&=EzgJvPmOkzx3WpkXf4MO;)?k=VLY{% z#8eEkg0V`R4J8=LQhyow8hpDEvW73hoCmOGg%^RYC(L(K{Ao0294v1UBAu%628m4-0 zh-5>T@29D+hofRxJtvOPEX^lOoWj0*y_-30<&uk}A(kNK2Nx`upOzq(ISdO{oMO&~mJxBdG9x%}wn*T;Tc{So(vtDU!c_N!Sd5}94@r&*F^!H1 z565UDh8Q}8E1npFeSy~o`q@~v!b-T~ugcAAxi!`SXq*A`8g>f74en%T*1t?bQgJJ?v`f|lD@*_hdMYh`aAW?^b=W^HPP#oF`ZgV)E0(ZU+p z%OzWGpN`jyn^}ih$Xj76EzMfVZIELnw>7hgwY25hTeiaXhoQ7o0*gT@d$}cwnp&FK z#kPWDYUL1y$+09mW}4cY*&)x~l!eNzvpJ4EHbA_*P+tBl5og=K;WSB$Pe{gf84+$8 zi)!uPd7|KT^>VzK-^Z%e-|R&jTkJyaTJ9)&exmU*{4i-}%k6m#@PGSsQwoL0zk? zpTyfU`C>yJomXzs zD_Z}n8T|Ck_}AHpbL^kbM|meau_NU;oZ8+aHoT;7iZ zESJYb%9|T}Kf;PJggFo`TINzyETy>-CpI$vc{0V?NM}X4Y48?OW$_=YEte1dzCu5u z@2i%Y5QQHD|9Iv8UF#+W=@wg4e)Z%SFpw`0PWe9UrXnqOcKK;n@e)$xl-p$GY!w4{ zo2G_@mOoz%5mELvO9U^{WP)k?eNRF zSAMttdItV-=9J&^zunTGE`su<<)V_}<@49wD*dqgWxxJ|^_KQq`BnaTDdp;ozb@u) zj^0ld!GGhN`*D?(KmI?@?Z11ZexCaO$3yjB?!>=4R{v+IM0p?O)Qd)8>JD6mO&6UZR$F!n-m%^@@w3L2f z3E_ATGyjXhS9?e-Mpo{J-^xfo?W`-)2HQi<<caBnGN)L^jIJ|=mA-y~@1TUfvcf@b{ zfpRCgyQ{yeJ380QlhaaC!_32N!dgW*gkfx`P>kJ$!KuPS94y0aEhEA)V3bv)ZKRDw zWSB*mm3eFoMlw&%G{^o+2s1~s(>yEzyE2T6NHGshO^%2#kH?-iOHPsP_tBO0!a7XB z3(+cp%Jfo^{_DDNuxm5LuXwq$GscUKjZ`L0<(A6n7mDfcchHsf!+e8~#x9VdlO-O5 ztMX;~7}PXG-W5G?A>nA(;{eLL;Fa&#TZ+RZ4^K;GClKC&9ukRe55%thh{y0M zq{V`I!7Z_{^o_?!hz`=&h)@he>5oke zi%ATLl?I|kZyy>P@zTrM6{iA+H)JP?JR=&d8GOHU=-^zeiyoGZHxSDHclSh0f;qZh zQWBD}8?Iu$yat{?e092X{x~`+2E}!B?2^jkAlE&SBM<(P<*F5=gz((J#N`Z3{8(9)lm(r(zfLOze&8h4oG`R$L40k`{`=EqEPB zE8-}}`wk<}L&o1xO6w%1srheNkH4uWLegWfTcx@}c`cv7vW%d(n3NQ*StO6TJUF#o4K0*bog1=g!4*6Sn0zkgDu8)Bo)kj5Zi(pMl( zCA2FstaW$5as+YrwS-r)A7(7eKWjE_dNC=|#djglQKe zUIKAi#+(+vAyP3S^-tfwcG!*-^sa}YLin{kupiTKIn)8De17IH={`u)bMn`f4FU&4 zT(-T~*IxKWXJr+Rds7_LCOHbDTg9i!<&nt=adPI!WCJm6T}(3-tN_jixopMxt{61M z(NWQ|al){#82c9AT)$S#F8HSU@uiWG9D{4A{I`Zo_9y16kNMVt{?!Xa`3;Ki4UBH4 zxE{0vbY;Gnrzuw604)C<>45#<2zmH=bZ}2dLp{N-f5kZIsAm&nGtGY5zuceZfvDnA z%+ZXB&kTt-#~4`2Q3<&17lj}GXx6YnqqqkZmW*pE#VjVl)Hc%6F1%H%(9jT$VP_d> z9usC77Cyk#!pzbF@2TY^xS?mxR-$5^H(;GZu&g6kH&gJ(o)brkMZX`e6h}GA$k7Hh z0QuiH@!y|_TVozh&?CeTAZNrbP#fqK(rv+ypeyJGeMbBRYHplnX`5y*bBBk2k~|QU zPka87_WC95{Y%;hX>P6bUCNdqHdooc<*`S$^j~lY-VhunkBkq-QAoi#i7z{;m4#cL z_%7tv;P-ZMQ!$-#J}$qcJ%35}6Y28p-J9@kLB3dlfA!qs^&lNeoCdtJf<|FHkLJWK ziniM}4MiPMK5c+yD$}cx&vd865VS6^-DpeUOpK6DNsM`#n2?Mr`bT*?T!g$)#=11u~gF(fP|HB+9DjvH~Y2^mgZ71tC_t^fW>8jTr;;{IPe&r`hbS=zYdkPLBY z1!LY_v3v|)BfX;-cj25|<1=0Gs}H}qc*IiWM(Dh7ME)6+Wqaous0Q8ud90O`?i^yo zD`lGjbrA2n$kXD{62{GaY2#2s{pYSdMRn0UP*)a=_2RjR!y&aZ=fdNihnd`!>*m8|&dKb^vlDTeRqV}wm!#(yLyntRff*IL<*wDQXICuJUMyOC)Q4t>brWYci6 zr04hnQvUF+DdeLmQwNhvd%BM#d;Oj?Ny@KkFo#^!rdtkqyFhmXImIY?my|E_KSJ`v zA>}cjZjjku3LZ=OwY)x(xg+(}*tXSP??HLm9^gW=+H+Uqmw6Cr@%gYQr zB^D*5N!0GTTH=Vye<<>0+8Qi3;+mI4?bu-wiw^CPD7*7kV(BHT3exh|rbxUKwnL&! z`=dmIT`m=+{IJmya~l*&l$Gjf(yvhxBT>8ZUWu;ZRV&d)Z-T`9l3fzDo7JdHf7-EF ziL#hh0skL+s8-lxc_8Vmhb& zH;LNs7u9CkvQb-IQdaap;M*Tc!Kp5pzx=60RtrqKHV>*V<+rGbDSsD^$NXqVXXiOGev~42gcWBy_ z91&QznUpWnHj>gkt2USNQ>z)1MZIdakn#;0nvkWxo3@nlN4S}icN}}0N%`7?%}G{k zQhxgaOES0cT`MU+w}mxX<8zpelz(`cE$LdbgpEY}XX!xZ&mHb4=`7{f znC?Pa%09M{@?S)_k~z<>x=H!koju5q@FGts|4TP-GU>@(A1U88tsNOqU8{qXAHC6! zRO!>Dla!AvDIK=0vy?wKt}7XkYt~K5M>S0*T{{*e?7rC_w7gKsJ9D| z^7}c5k?5g}kn*QFMv>Ddd&EfjF5L!@`CAj>qTl1Bm-vJypi&6*ZDxI zeAf8PtN$>r{`Hm0wQJby4M%@*rqt^FkGET-R<^RSDr*{|XknXT4cTZw1MR!FMtI6H z>}zIgQ<;8>n5{cyn*H$x<uZx-6mP;ET&1L>4H<^v}&=@>XjNhJhLv^LT zsBn;^+QTB`r))t36qx!&io-qBd!NT@mV zpIor?s|NQo@l22Odq(*S%mK^gJ}ci(U?tLQRPqeJ3jN2|?fYJleZO~Lgyq(TxNgdI zX@_&GJ@lVnA9VUB^G3b2yYS31`^+$6vSi9b6@7;x_=OV|!tP`|7n~xGMgIeS_NGST zo<)e+_g}T1Sbw&=l)rK#MEWls8Sw2R6#ec0uI*!=1J;S18)nuvip~u_($DkH_0Vb5 zS@X7+|1tJ+rG*vhiWLe2$6%-9AAa)kj<7sf(e?l9OTRC#&L)Uj*(|#$ecOcIqbMY>neCM5hnt$x1c|VmApob=Wt>vn4ViEj~OkB3Zge zgIij7nmQ&T9KSF5_YpX+*!zWZ=Vu3h;1QjGpU&kvh48l+841Y)%3I}Tg3-g+WyS>x zHzFJtI(igS@C+aCbtqFT5|WP2aP~AQXBv*KFZ6#6h=`Xb#w13F)eni~&Dl)cEkb{9 z3Lc9=FE7_PL+U=3o}rNDhQ1x#RpBV%IQ`kvBU0Z3MOQQK7G`pWrU~(}nbP?0DVZs_ ziOAcr9Alg}oYDOmlNKk9@~y~=O-M*&0rVwFv*q$*W8z{`j6deU0aV(2UOp8grJ=(sEmhHB&)$l7+}afD zg+D^Tee#Hi0ep%f4fjza21q@1Tt>OIO-f5h4Z;2ji--u12$xm>k7J4|AwqGR1NV+o zG9v~?grzBZGNn@V!m)2~J7GXrazaXqX?R3>40=SRjl=e%f0XNtnZ=>4DA~B>r?`X7 zIWYJ8Jq8}*Ug5<`^>$69H#m&kvkn>iaskjQziyINnFI4`=yc^Kp zT+g_)V-k4vF2p?8-B^qc8s6Aarb~WF?^gRc|L`yAV_6r8%kIq9G%F7hSIc~c$?T;PP5b5&g zM>lLA&n@MbKN}+D)7_EJu1$7#DsO7`MBEE1e;zbLI`GG7?~bm?ggESRRQo@D-}FYg zjtQw=thfEY*V`Uawe9}B+U~5VwaXi*w0%%%2ma{D@2IGW$~iyEyDDmIEJ=6~;jXB# zed7aDA{ZdURas4o`FNm~#$PF+mi9*_?W(AqJ*CRIJF8?jo(7!GLsM%n<(MQ zy0|myn@*^Ty-Yjrp1cO17CM|at9B*;A<@;EGZ3pUva_7UdQXo^v=%*$29d=6?r3hq1LVwEmP{RCaIWr5BcW-~5@v0pKJ*q+kHhx| z)D*IX+@SVQF9@TN%MziX&=_bYv=qvPjzC3F3G^EJ3RS>)SskhmHHDlYAE+x73B^N0 zps~;#XdScy>#zen44s93hr|USef{8Pkn~U-ngwWw#fRfBE)k%?7x(Y@8H1Kf9G(P9 zNXDPYwGuaIaaG|esh_MX>x=!x+fO_$<-Z&H!0QW@_x@c!WYh3Pi2JmrDG^cMA6Uc6 z;V}nG=@*C8x|4ol$z&U_j&WGGp;#9~kUs@0eg9O(xm6kGK^2^nwedr|flQ7Yea12y znJXSa>n01q`lsT7qbag^vPH5SJc_eXwoA4jkHq9jpF^^rKgVU~WJR(Ivg`Of#KRD; zWU49^RJ8D^{{2%&rLIbS6@BT`P{k0R#`qYi7^}2UaZquVJ}xSXkDCfV?kXNCp5H${ zD!$^=Ugdv2|L^PpKb20>r<+PIm3}JGDoHAX@ySw|pfXEkk;-b7%_@6T4y&A2xujC8 zQlj!g<)ezKY8BPmstr_)RLxZ#RNYkDs|Kp}QH@efP|Z}$Qk|eWOLdXzYSqoEdsGjr zo>sl2TC7^4`a<=is;XKQwc2V8)Qr^3)g08^)Y_{Bs`XKeQcFJ8M5)Xmi$)ZNtEs|Tw0QIAqjP|sA)QlFqc zOMQ|0vj3w#%hi8;R;sVUXN~x*RbQ*VPJR7<@!6uD`~9<3ouBRMJJffo?^i#jep>ya z`VIA4>QC``t^O6C3K~^4YHHNMM-QK78Z9+!G#sRli-xC0dyN2mx@h$N4}AJ*{J;7M z)(H9K6RHvUKcD~h9*EZXcYXS6C_afADH^H&=x;y6G=^)8kUrTOiqA-mpFg8C zM*o+eF&YyzrfAHRKC?CWnS;+dLH5Ox{sO!_R>`0Ix)0Jam^55RUM#YZ04 z7G&FyKHGp4nha8#k-y97^TCrPB3=tp>_^!s#4?+N=<_MG1PK3R*)Vt?kMT4#G!HjnUIlIu@e}a1h`)do%j=>c&c|mM>w%3$+!Qnt zu`y^W;vle>h^K*B*f$F2vYRKagVij$kL@2Y}s$9}0$vcmznXd={7uak=|JivB^6Vw?vaf>n?at#Gk-#B38jf6w9cR5dO)W@IQ*a3)n`)Z9xkEWUlz12gEYopbvz9viA62 z2NC;$6w3sH-9;PDg2Wi!v84x`QTv)|76GUzXB1T0?&x}EJ(5Z z6_8>qRc@%@7^{#FvSjKYMc)ae7`uRNMeGWCKrHVC`Ut-r=qKVpu$zcO!7vf?xjKsT z%mT9^&SyVJ(LV@M^z%T9{vj}5_=iD?{t@t~@Q;HO{S#n;@K1rKMSKQ43$e^4@Un>S zg7-xH8l<=mto&6VmRBVq`mI4H;k$qo%d`R8LM-D7dI;YO<3buwj)U4 zl9Y7^Df*#cn21M!6#XnP8{#}qffW7oAjP;4EP`0(ckrU{FM|}zTm^4JEOQH_=)VGA z3*QnQCKP=ukYagj&{6o_U`G+>f)vYd11Xl@4(=Cz0eDWtb45;dcYO3%>^#B>cW$u!xhuR1s%^6qh>^q&Uw};Ar7b0x6bR1X7II z@zM`M^FS61u7+^g1#SIiSR8zOA)sMDNbtz+6&(SY%Tmccw(b2#4`23 z`Vi-@2U7F{L5hAikfPrmr0Dkm`wBl8q*x{tq!>qlu_BHGlOax<0uB-WFpy&TE#Ns3 zv*TEeg0BuzoYoq26n<-vqVEJ!Ebk1u3f~Q+=(~d+!XE&p2!A*@Ld01h#d+p{6ys&! zN{I7W1+EtU8gQ-f*MStvuLm~@|4)$Ov?U zUkkqpp0787Sf(Xt1#wzy&_?*Spq=mw!QVxE5xgzpJ0QjR+yx&B{~1Veo^L>k@q3VB z`48Yn;U8*%>lb2~DsqK*{#Qjz(XR$ls7_^CV0DOPnuBH{b^9`OY!#=&3$#PWsU zONjF{G*F0T91v5CXM*!YycS$1;`)to&OM86`aBjQ@%C=pKuHH;KxG(jB^*8(X{s|!+$ z8-NsJ1CV0e9Hbaqfz~4S04e(3AjP-?NHOjRQjEKRfgQuM>XC=t&B=ZH85q*!JP zNHNX>DaO{uI9DOY8Yb8m5Mw=1U&Q_(ML!Uv7{6$V>jF|kJj_%f#U4!!!V)+Un z#kdMcF>VYtVH$B$u$l0UK#G1#kYf4a;0WPw2akyOD0mEFncHBgh`)gp{bp;?R)83L zg8?G$40eIItYB~mq=9%im<6$XHb}9|Hjtvf9o!-Oo!}nf?*;b>e?NFY_y@s5!hZl# zoR9H3T>B7XbI=0fvMj+?!nXpgg>M7e3f~>1IBf@zV(bS}oX-%DqQ3>C7;go)i+C5f zTf_&!JQ3%E6w5yWDbDjL_)PfE!56}R3sNle4x~8kz4hp?fapH}Df)kcB~TT_4?&9l zBk(a)1@TjmV*CuGSVp!%p^AVCVm(L`u|7!AZvff}-yWpsJAhq;-xZ|j2Z9O0PXsCY zN#F$GPXsCYlfc!&UjtI~*Mdice-xzX9|La*|29a`zXO&D|1(I@{{q(8sMxN$AVt3( zXeE4WkfLt`b`rinNYM`f2M9kFr0B@Ye+Wp?9}3P9{#=lv zKM&j{{Ouq`e+PJ8_=O-vzX*IH{HGvA{~4L9*e*>HqF)JYEc_-QMZYQ7M)++(ioPq@ zOZdG(ihdt3L-+$hihd?IL-;d6ivBEcv+%co6#ZQAwD8Y>6#cVciSQqS6#Yk_+E&GO zse=@K4X}~$`-HzAr05?2uL%DtNYTFrz83x)kfQ$X_c-veF{{zZ_Y ze+hgc{Ffj_zZ9&pOR-&5L5hAg&`9{rL5jXH=q`K@kfQGi_7i?ENYM`g2Md1)NYNh( z&Jq4xkfJ{i+$Q|(AVq%%cwYF0AVt3jd?Ng(AVvQfxm&Sanj}QO64+SyO+bo%Q?QNj z+kzB*SFo4xdxI4HK46CM2Z9v+OmK$qXMz;{S>R^jZviR#x!`Hxp8+ZQXTcKTKLjcI zk3h9OitSPdDf${I2(N6=X2!AR_(Vqsc z7ybs2qQ4P5A^ZZ6qJI*+C;a;$MgIZ#P583CFd+IWpdKXE|De9`8-RAgw+AVfcL2Kx zzbi=54+Im0p9oU)lfVhWp9oU)CxNSlzXqh}uLX|?|0qb&KL*|s{%w$=e+MiR{%4S) z{{^hGPqAHfL5hAo&`S8$AVuE>>?C}DkfI*|4iJ7UNYRf2#|VEcNYNh$E*Jg^kfOg5 z%oF}0kfNUtUKjoikfL7q1Df%Jc zVBrq|Df&afIl`X{QuOD6+l0Rzr0DMe&kMg0r05rcPlW#zr072*^Ay{qNka51fsKXV z1f=LU1=|R}ElAOK1$zmkr1#TAp7LcN!3!WDK8IYoX z7Az6|Ly)5X2vj?y*e-RDqOSoqf_NO|AVuE*Yz@(O0x9~=V0Vaq50IiC1g1drQ$dP; z8aM@_KNY0tPXpIO^f!PM{f*!Wh<*V`(LV{^gXrG}Df$n5bHto^+Ae$ z1JF+R_8>*y0qi3Dt{_D}5KIt$B1q9s0w)N6B1qAn1g;kT8jzyD7Ca*Sqaa297?TYwaO zOR&B0JAf2@KQK!8(I7=X2Fw=zNRXmG3S1)mr65H=2izz8{UAmE0C+|CS3!#YHSo3Y z-+&bTw_x?7itW+{Df%@)6XCZ6Df*_MxA1*HioP!xCj4-aq8|Yc6aH|JqCWy$ApC_O zMSl^vOZdA%ivAw(g77bb6#Yx!3*o;6Df*>gm1BzSstQu{tAR$sZw^xQjX`(edw>*u zPq3fxgF%XZ2sl{yLqLlDP;id$=YkaddEhqTZwD#*JHYe8F9a$2Mc@3;zsA(LW282>&5S(SHQ0oltC-I!Mvi02@K9C*>ej5wQW-8lvw6QWX(9gWVze zJwU1=;vg^uqMr&<6%nU_Qy}_NL8>C+Y2bQ@{sxe$hp}GOL5h9@&<@f>Y!6cO9l$P-CgQFjML!TsfHV;&f)xEEZ~~-> zcp^yAp9HRkG!d@>Df(-{BakNIqaa297{uK+3fE5SVB9|9@*`QUZo z-vBB4#o&A4e*h`^AHkZZ6x&q`r0CZM&4q6PQuHms_QLM~QuO`6DB(wg6#W=5TlgbE zivB2YiSU<#6#X172#h6Df-vI*TR1TQuN<~)lVz7OB#TzF?T}!$FFE1UO9i!$FGv2ylV$7lIW1Mc^*s?*=LQd%z3AzX($FFM%(F z{}QC=mx5K!D7LFANYSqb8VSESNYOV2-G%P~QuIB+e!>q1Df%JcVBrq|Df&afIl`X{ zQuOD6+l0Rzr0DMe&kMg0r05rcPlW#zr072*&nmV{lZ5D30vijz2}sdz3bqk`Tacpf z3ic9yZ;+zj2h0%uK#-!J3CVp*h2B4kr?LmsZ1K36QT|tU| zAebQhM3ADN1WpkCM3ACC30y7wH6TTQEqFxuM?s4IG4Ph~Z-W&5J7AgcKZ6wgFJPTQ z#dg&NDf;z5E8$y%6nz`8lkojPihck%K=`pBML!N4BmA)-MSmQ)T=*+MivCJ4PxyyG zihe$LUHCUZiheQpUicqCivCBiW|3mMYJn8}+Mv1cEkKICCD>m09YBh{9~dS4Xpo{G z17-_gl?#gPstQu{tAR$sZw^xQjX`(edw>*uPq3fxgF)*5YwldYt0>Pr zJ`-|gF`^`zqo5*DRB8c1xhFtQkbu=zl5K_vHqC+pn}}Q!q9P5ly57ZGK8F zKNT)A|4JyyUkq26e;1VG-wijJ|1gx~Z-%d!|0P4l z|0Vca^FM@={EuLlmTch|e$k}@EVJqT$c;F8~h%c3nk@bLFsVf5pcZubD^Z11+dQIMtGIQOQEE?>)}R=H^D7P zbsvF`n*SJl-2A7YbQn3$LP_~AK}o)o$JmhkzObLg{h_3O2f!ibm%{PpFMyKjE`e8B zyc9~Ry9sW#cnf?QDgPO`)%<7Sb4cTP9=?c_^D>mw&MQ!o-~TArIRnWb2+u_F&w_)^ z9|9%$L!qSnVQ{$lW1ys*5-2I&0VTyd;d@AR--jQY?;OqXMasz%k#dUQDD%faNjb$( zQceO&@=M@2^C!S_EIto@$KpyTDSsNg$ov^_micpGoy9}**+-e>{|w|9vPaUJoV38{kHy{7vvt^B;qf{KuiB{3qa(=061``AzTj5#-+|jL9(0WBoQ0G#7#1S+ zRRl+wKN?E%$3RK>#V}$1YA7jZ4V09#7E1CTg6qs*4>y~?1xm_)1WL;9b*$_3Mv6~{ zr&@d(l$75W_A|eK4?ZJE{y;b!sqP3U$sY*|%^%d$btL7S35O!(42L5uE`p9}6Y7Qv}B#315a=rN&X->45_aXaJ0o^pro8)C@JT5_@KqBpro8;xZeB?P?En9ZZiL2D9PUp zx0rusFUEk>ej$_;kAkBuE{3HRkB5@>cLJ1@e*?S)sr_5wZRXzr?=-&&O3GgjCFQSx zlKelO=sJHwid*5Ik#d~gTyK&5EGTIVUF0F<41q%}9tI1M^2fkp^Ak{#Ujil79SbG- zgNBfg^z4yiK=SNSv z&OJ!}eeiyyF*vWd&HyBT5FBsu^w(TRl0O4VYG)>_G5=C1$)649o4){Ffz z;EfhH!?hNVeVzLSQeVzn>@QMW1ZP=X4<-3mLrL)u;k_3B7_PI}*~xPnQchRc!{X!N zNf!5kr&xR%{HDdrprpEk-eo*U@k8&qffRp2yaxsGE@Gtk)el|gO{93-N3L@&Qta&I z84qO>9`Py9jY#o8C@G!==UMy%*l6)BP*ToqaHYj-;ckmRfJu}?j{67NN6J4ANqr|FixbpqhP7U6JYYQ(04xP89r$-|94w&q;szTHX@CG z2~3*rxJNpBko>(c**(mU{`S`j9<}?jt!%#DVy^e#5iLAhFUvWfl_0RcT{v;Z4E~s; z<7Rc~k{$E@uIphrhj%;T$Sz^&9`UfRxa3-Ud0{y!qEqtvlDD11@6BgC8jjc13kTFa z*Ymu*qmIt^;>R4@qvvtQpU~^X-UTO}+~?#|PCc#fH%|ZNsr~v7IAh?TGtU}4WazNr zBSsc_MWb?ZsN{L0gJo(lrZ`bD);rr9hf_L!!a3hM_q=a^$Meo-HOwcNSXTb`->vW` zRbDXJo8oyFdf%)1epU59Or3Vo#nWfZ{Kr&V3TkSD)k{3ro8@_z&Mqn{nlpFa{GtU# zb@dAySUYsZJ9J$g>YgsUJecJx7F{VW_Pif7F1c#yKV5yzKeKx6p&rfut-tHE3tw2O z4nc|b;rg_Z+;F4k&b!IG*{oaOGVj*3gm&R=o_Bj>-4O(LHhIfecz4~s@`wNOqkHbX z?+ow9{r}bT?*F$3e&Tr#{&ZFIYHtmBYtcjNy!9J4ZVGBW>}~e8Jo2dG#~yzou)fm8 zgeSk!=DtpiJ@s_^(LA&DXVJ0!f8w*9wENu8+mGXKxBd%_@0Y&{M)~V6H;m`MT-uk& z`u7(s>BW~k@8vJ9@XD*Nb(-+H_ly@F*WbKh2@#|G7Vpg{?8t4N_aFcH*4y4Y+dc2U zcI0=Pv%hvtv;F&PzPnUbU^EKDnDT*yWlLpib$w&?zLv&@D(Y?bTYSH@#XrE7 z#>!+>E1uR5QtBHT8YZ!>X}dekgLI_Q-NGGRqiIo570#H>_arTjQBMl~%Y;ML9pE`!P$7 z#$~G&ZbjIiZ7(fpYgAE1Nj$$Ss-wWotq4}b{FoDMvugQ4do&XDSDM+L<}0I0Mdk!# zSHzgZwEBLjAIw42UfP7va=iWcGaC>3F7;#M+6}^1%N=Gbu0`jiJUBd^ZMRY6W$cR2 zk6;NWTj0O2R51R76_;0f*>so1G!4w1&jC=QsfL>mQlbv5aW}n_pfQYS&e}7To6DK4 zH&3VarwK`IS70N|NWo6TwQJUGJU^p~U+N@y!F2^^bH)Z6bH;pUbe5f{Xq&F!vk)G9 zT91|GW*+*|vb;=#4}|S#f{wB|@BIp8#GP%8)zyv3SYlsQOMNs@{c!GA`Yi|AEytWlU&R!v%-wiaF14$d9XrnXBV^<}m)3SBzsySln{ zn^t`mEuh9<%vF1e-#{Fc2A>mQLf3no)_4QTXv#+4-l0; zu$K0uEival;@VYhMq5;SRVwz=5-hAuZA=fMzCtf8Cz(u7Bc7D8UK{OE2gW&%qg}Q$ zJ2OWcOH1RSS)xlT#cF7N2;+gLMaB zAiu)TILG6Ol5!>{qe?10&P}G>2;#Jv(OpcfyZJ#^9T)Mk?9{x+quXGr$r$gXPpw3i zxx|L|($w*awuo_OTs%A7XcsdVxz=RHFrzfakk_HhXrmu5cXCrJE{{j46$?1C+aI*} zxOn?4t#hM@`r+G*R7Tv%Pv``96LwzI7osyT=(pXj^?v%WvXm!`{aW^>n`UHg!(HuxhzLT5Xp~Lnkdek8YKk5Z$ ztgzm3j+)Z4xd}H$H|6T+E*-Ku^7pK6{#aI}>S;35Crt+-I9P2rwqP^eu4?XhFZ@Zc zF{6#zCXPqY=A_Kqky2~J3PG*T7R%e2jH0PF^k_6X?0SCbI1iXjL8>yN!u5Vq?JAuj zJP4$nVI)RPgv|%b+UEBA7_}pk!XBxaR9Q*;53m+At!>d2RYzSV^B5$nvGiSxzQ56D z+e7*tFMao--hA<}JknV5kjAL7 zmpFrif9JCNHu9Y*<_xx|!MV&ScE&sBG1dZ$hBe>Z3-_VzJrxy$u!>b7A@?yncZC?HK`Ii?3xzqG=O5T5Gnf)!}p!s@% z?B#Q(E1y@176$443+BwaI1Iy{7EYaCqc`_0DwudlVZm%(qgGVFD-y$$g2ks7qz!=A Z*v*_?T{F9;uA1pc4fzWOlCwDHe*rCSJ+J@( literal 960815 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 From 1e437801d4fd122ea2c2feee6be6bdf6e7405a1b Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Fri, 29 Sep 2023 15:54:32 -0700 Subject: [PATCH 27/29] feat: install specific extension version (#3405) In order to not break CI every time we release a new dfx version, make it so we can install a specific version of an extension rather than relying on the compatibility matrix. There is no document for `dfx extension` in docs/cli-reference, so I did not update it. --- CHANGELOG.md | 4 ++++ e2e/tests-dfx/extension.bash | 2 +- e2e/tests-dfx/ledger.bash | 2 +- src/dfx-core/src/extension/manager/install.rs | 6 +++++- src/dfx/src/commands/extension/install.rs | 10 +++++++++- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 611f15b583..4947451f75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ Generate frontend declarations for remote canisters too because frontend JS code may want to call them. +### feat: dfx extension install --version + +Install a specific version of an extension, bypassing version checks. + ### feat: Updated handling of missing values in state tree certificates The `Unknown` lookup of a path in a certificate results in an `AgentError` (the IC returns `Absent` for non-existing paths). diff --git a/e2e/tests-dfx/extension.bash b/e2e/tests-dfx/extension.bash index dd22e5b5b0..f5688d51ef 100644 --- a/e2e/tests-dfx/extension.bash +++ b/e2e/tests-dfx/extension.bash @@ -19,7 +19,7 @@ teardown() { assert_command dfx extension list assert_match 'No extensions installed' - assert_command dfx extension install sns --install-as snsx + assert_command dfx extension install sns --install-as snsx --version 0.2.1 # TODO: how to capture spinner message? # assert_match 'Successfully installed extension' diff --git a/e2e/tests-dfx/ledger.bash b/e2e/tests-dfx/ledger.bash index 6c5590fa9c..f030490dd3 100644 --- a/e2e/tests-dfx/ledger.bash +++ b/e2e/tests-dfx/ledger.bash @@ -12,7 +12,7 @@ setup() { dfx_start_for_nns_install - dfx extension install nns || true + dfx extension install nns --version 0.2.1 || true dfx nns install --ledger-accounts 345f723e9e619934daac6ae0f4be13a7b0ba57d6a608e511a00fd0ded5866752 22ca7edac648b814e81d7946e8bacea99280e07c5f51a04ba7a38009d8ad8e89 5a94fe181e9d411c58726cb87cbf2d016241b6c350bc3330e4869ca76e54ecbc } diff --git a/src/dfx-core/src/extension/manager/install.rs b/src/dfx-core/src/extension/manager/install.rs index 11d48c1716..f25b550d2d 100644 --- a/src/dfx-core/src/extension/manager/install.rs +++ b/src/dfx-core/src/extension/manager/install.rs @@ -17,6 +17,7 @@ impl ExtensionManager { &self, extension_name: &str, install_as: Option<&str>, + version: Option<&Version>, ) -> Result<(), ExtensionError> { let effective_extension_name = install_as.unwrap_or(extension_name); @@ -29,7 +30,10 @@ impl ExtensionManager { )); } - let extension_version = self.get_extension_compatible_version(extension_name)?; + let extension_version = match version { + Some(version) => version.clone(), + None => self.get_extension_compatible_version(extension_name)?, + }; let github_release_tag = get_git_release_tag(extension_name, &extension_version); let extension_archive = get_extension_archive_name(extension_name)?; let url = get_extension_download_url(&github_release_tag, &extension_archive)?; diff --git a/src/dfx/src/commands/extension/install.rs b/src/dfx/src/commands/extension/install.rs index db2abd9c95..6435915951 100644 --- a/src/dfx/src/commands/extension/install.rs +++ b/src/dfx/src/commands/extension/install.rs @@ -4,6 +4,7 @@ use crate::lib::error::DfxResult; use clap::Parser; use clap::Subcommand; use dfx_core::error::extension::ExtensionError; +use semver::Version; #[derive(Parser)] pub struct InstallOpts { @@ -12,6 +13,9 @@ pub struct InstallOpts { /// Installs the extension under different name. Useful when installing an extension with the same name as: already installed extension, or a built-in command. #[clap(long)] install_as: Option, + /// Installs a specific version of the extension, bypassing version checks + #[clap(long)] + version: Option, } pub fn exec(env: &dyn Environment, opts: InstallOpts) -> DfxResult<()> { @@ -22,7 +26,11 @@ pub fn exec(env: &dyn Environment, opts: InstallOpts) -> DfxResult<()> { return Err(ExtensionError::CommandAlreadyExists(opts.name).into()); } - mgr.install_extension(&opts.name, opts.install_as.as_deref())?; + mgr.install_extension( + &opts.name, + opts.install_as.as_deref(), + opts.version.as_ref(), + )?; spinner.finish_with_message( format!( "Extension '{}' installed successfully{}", From a7be23c1eed5063b451576d24a2de66816eb5ce9 Mon Sep 17 00:00:00 2001 From: Kento Sugama <107421898+kentosugama@users.noreply.github.com> Date: Sun, 1 Oct 2023 07:13:39 -0400 Subject: [PATCH 28/29] feat: Emit management canister idl during build when imported by Motoko canister (#3329) --- CHANGELOG.md | 38 ++-- docs/cli-reference/dfx-build.md | 14 +- e2e/assets/motoko_management/main.mo | 7 + e2e/assets/motoko_management/patch.bash | 1 + .../motoko_management_recursive/dependency.mo | 7 + .../motoko_management_recursive/main.mo | 7 + .../motoko_management_recursive/patch.bash | 1 + e2e/tests-dfx/build.bash | 18 ++ src/dfx/src/lib/builders/motoko.rs | 97 +++++---- src/dfx/src/util/assets.rs | 203 ++++++++++++++++++ 10 files changed, 328 insertions(+), 65 deletions(-) create mode 100644 e2e/assets/motoko_management/main.mo create mode 100644 e2e/assets/motoko_management/patch.bash create mode 100644 e2e/assets/motoko_management_recursive/dependency.mo create mode 100644 e2e/assets/motoko_management_recursive/main.mo create mode 100644 e2e/assets/motoko_management_recursive/patch.bash diff --git a/CHANGELOG.md b/CHANGELOG.md index 4947451f75..703820bd83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ # UNRELEASED +### feat: emit management canister idl when imported by Motoko canister + +`import management "ic:aaaaa-aa;` + +This will automatically produce the idl in the `.dfx` folder. + ### fix: Include remote canisters in canisters_to_generate Generate frontend declarations for remote canisters too because frontend JS code may want to call them. @@ -330,7 +336,7 @@ Previously, it would only retry when waiting for the request to complete. ### fix: now considers fewer error types to be retryable -Previously, errors were assumed to be retryable, except for a few specific error messages and 403/unauthorized responses. This could cause deployment to appear to hang until timeout. +Previously, errors were assumed to be retryable, except for a few specific error messages and 403/unauthorized responses. This could cause deployment to appear to hang until timeout. Now, only transport errors and timeout errors are considered retryable. @@ -385,7 +391,7 @@ When running `dfx canister delete` on a canister that has not been stopped, dfx ### feat: gzip option in dfx.json -`dfx` can gzip wasm module as the final step in building canisters. +`dfx` can gzip wasm module as the final step in building canisters. This behavior is disabled by default. @@ -475,7 +481,7 @@ Previously, it would only retry when waiting for the request to complete. ### fix: now considers fewer error types to be retryable -Previously, errors were assumed to be retryable, except for a few specific error messages and 403/unauthorized responses. This could cause deployment to appear to hang until timeout. +Previously, errors were assumed to be retryable, except for a few specific error messages and 403/unauthorized responses. This could cause deployment to appear to hang until timeout. Now, only transport errors and timeout errors are considered retryable. @@ -574,12 +580,12 @@ When creating a canister on non-mainnet replica, you can now specify the caniste `dfx deploy --specified-id ` You can specify the ID in the range of `[0, u64::MAX / 2]`. -If not specify the ID, the canister will be created in the range of `[u64::MAX / 2 + 1, u64::MAX]`. +If not specify the ID, the canister will be created in the range of `[u64::MAX / 2 + 1, u64::MAX]`. This canister ID allocation behavior only applies to the replica, not the emulator (ic-ref). ### feat: dfx nns install --ledger-accounts -`dfx nns install` now takes an option `--ledger-accounts` to initialize the ledger canister with these accounts. +`dfx nns install` now takes an option `--ledger-accounts` to initialize the ledger canister with these accounts. ### fix: update Rust canister template. @@ -587,7 +593,7 @@ This canister ID allocation behavior only applies to the replica, not the emulat ### chore: change the default Internet Computer gateway domain to `icp0.io` -By default, DFX now uses the `icp0.io` domain to connect to Internet Computer as opposed to using `ic0.app`. +By default, DFX now uses the `icp0.io` domain to connect to Internet Computer as opposed to using `ic0.app`. Canisters communicating with `ic0.app` will continue to function nominally. ### feat: --no-asset-upgrade @@ -766,7 +772,7 @@ This is no longer the case. See rules above for grant_permission and revoke_per ### feat(frontend-canister)!: default secure configuration for assets in frontend project template -- Secure HTTP headers, preventing several typical security vulnerabilities (e.g. XSS, clickjacking, and many more). For more details, see comments in `headers` section in [default `.ic-assets.json5`](https://raw.githubusercontent.com/dfinity/sdk/master/src/dfx/assets/new_project_node_files/src/__project_name___frontend/src/.ic-assets.json5). +- Secure HTTP headers, preventing several typical security vulnerabilities (e.g. XSS, clickjacking, and many more). For more details, see comments in `headers` section in [default `.ic-assets.json5`](https://raw.githubusercontent.com/dfinity/sdk/master/src/dfx/assets/new_project_node_files/src/__project_name___frontend/src/.ic-assets.json5). - Configures `allow_raw_access` option in starter `.ic-assets.json5` config files, with the value set to its default value (which is `false`). We are showing that configuration in the default starter projects for the sake of easier discoverability, even though its value is set to the default. ### feat(frontend-canister)!: add `allow_raw_access` config option @@ -784,12 +790,12 @@ By default, the frontend canister will now restrict the access of traffic to the **Important**: Note that any assets already uploaded to an asset canister will be protected by this redirection, because at present the asset synchronization process does not update the `allow_raw_access` property, or any other properties, after creating an asset. This also applies to assets that are deployed without any configuration, and later configured to allow raw access. At the present time, there are two ways to reconfigure an existing asset: 1. re-create the asset - 1. delete the asset in your project's directory + 1. delete the asset in your project's directory 1. execute `dfx deploy` 1. re-create the asset in your project's directory - 1. modify `.ic-assets.json` acordingly + 1. modify `.ic-assets.json` acordingly 1. execute `dfx deploy` -2. via manual candid call +2. via manual candid call ``` dfx canister call PROJECT_NAME_frontend set_asset_properties '( record { key="/robots.txt"; allow_raw_access=opt(opt(true)) })' ``` @@ -805,7 +811,7 @@ Callable only by a controller. Clears list of authorized principals and adds th ### feat(frontend-canister): add `get_asset_properties` and `set_asset_properties` to frontend canister -As part of creating the support for future work, it's now possible to get and set AssetProperties for assets in frontend canister. +As part of creating the support for future work, it's now possible to get and set AssetProperties for assets in frontend canister. ### feat: add `--argument-file` argument to the `dfx canister sign` command @@ -916,7 +922,7 @@ This incorporates the following executed proposals: ### feat(frontend-canister): add warning if config is provided in `.ic-assets.json` but not used -### fix(frontend-canister): Allow overwriting default HTTP Headers for assets in frontend canister +### fix(frontend-canister): Allow overwriting default HTTP Headers for assets in frontend canister Allows to overwrite `Content-Type`, `Content-Encoding`, and `Cache-Control` HTTP headers with custom values via `.ic-assets.json5` config file. Example `.ic-assets.json5` file: ```json5 @@ -930,7 +936,7 @@ Allows to overwrite `Content-Type`, `Content-Encoding`, and `Cache-Control` HTTP } ] ``` -This change will trigger the update process for frontend canister (new module hash: `2ff0513123f11c57716d889ca487083fac7d94a4c9434d5879f8d0342ad9d759`). +This change will trigger the update process for frontend canister (new module hash: `2ff0513123f11c57716d889ca487083fac7d94a4c9434d5879f8d0342ad9d759`). ### feat: warn if an unencrypted identity is used on mainnet @@ -1155,12 +1161,12 @@ The running replica port and url are generally useful information. Previously th Instead, the build process relies on `ic-wasm` to provide candid metadata for the canister, and shrinking the canister size by stripping debug symbols and unused fuctions. -Additionally, after build step, the `.wasm` file is archived with `gzip`. +Additionally, after build step, the `.wasm` file is archived with `gzip`. ### chore: Move all `frontend canister`-related code into the SDK repo | from (`repository` `path`) | to (path in `dfinity/sdk` repository) | summary | -|:--------------------------------------------|:-----------------------------------------------|:--------------------------------------------------------------------------------------------| +| :------------------------------------------ | :--------------------------------------------- | :------------------------------------------------------------------------------------------ | | `dfinity/cdk-rs` `/src/ic-certified-assets` | `/src/canisters/frontend/ic-certified-asset` | the core of the frontend canister | | `dfinity/certified-assets` `/` | `/src/canisters/frontend/ic-frontend-canister` | wraps `ic-certified-assets` to build the canister wasm | | `dfinity/agent-rs` `/ic-asset` | `/src/canisters/frontend/ic-asset` | library facilitating interactions with frontend canister (e.g. uploading or listing assets) | @@ -1177,7 +1183,7 @@ as if they were [JSON5](https://json5.org/) format. Example content of the `.ic- "match": "*", // comment /* keys below not wrapped in quotes -*/ cache: { max_age: 999 }, // trailing comma +*/ cache: { max_age: 999 }, // trailing comma }, ] ``` diff --git a/docs/cli-reference/dfx-build.md b/docs/cli-reference/dfx-build.md index 0531cb914d..f10f411db8 100644 --- a/docs/cli-reference/dfx-build.md +++ b/docs/cli-reference/dfx-build.md @@ -16,16 +16,16 @@ dfx build [flag] [option] [--all | canister_name] You can use the following optional flags with the `dfx build` command. -| Flag | Description | -|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `--check` | Builds canisters using a temporary, hard-coded, locally-defined canister identifier for testing that your program compiles without connecting to the IC. | +| Flag | Description | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--check` | Builds canisters using a temporary, hard-coded, locally-defined canister identifier for testing that your program compiles without connecting to the IC. | ## Options You can specify the following options for the `dfx build` command. | Option | Description | -|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `--network ` | Specifies the network alias or URL you want to connect to. You can use this option to override the network specified in the `dfx.json` configuration file. | | `--output-env-file` | Writes dfx environment variables to a provided path. Overrides the `output_env_file` configuration from `dfx.json` if passed. | @@ -34,7 +34,7 @@ You can specify the following options for the `dfx build` command. You can specify the following arguments for the `dfx build` command. | Argument | Description | -|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `--all` | Builds all of the canisters configured in the project’s `dfx.json` file. | | `canister_name` | Specifies the name of the canister you want to build. If you are not using the `--all` option, you can continue to use `dfx build` or provide a canister name as an argument (the canister name must match at least one name that you have configured in the `canisters` section of the `dfx.json` configuration file for your project.) | @@ -57,3 +57,7 @@ To test whether a canister compiles without connecting to the IC or the local ca ``` bash dfx build --check ``` + +## Management Canister + +If `dfx` detects that your Motoko project is importing the Management Canister (e.g. `import Management "ic:aaaaa-aa";`) it will automatically provide the Candid interface for the Management Canister during the build. \ No newline at end of file diff --git a/e2e/assets/motoko_management/main.mo b/e2e/assets/motoko_management/main.mo new file mode 100644 index 0000000000..2fd2f8e820 --- /dev/null +++ b/e2e/assets/motoko_management/main.mo @@ -0,0 +1,7 @@ +import Management "ic:aaaaa-aa"; + +actor { + public func rand() : async Blob { + await Management.raw_rand(); + }; +}; diff --git a/e2e/assets/motoko_management/patch.bash b/e2e/assets/motoko_management/patch.bash new file mode 100644 index 0000000000..da753f124a --- /dev/null +++ b/e2e/assets/motoko_management/patch.bash @@ -0,0 +1 @@ +jq '.canisters.e2e_project_backend.main="main.mo"' dfx.json | sponge dfx.json diff --git a/e2e/assets/motoko_management_recursive/dependency.mo b/e2e/assets/motoko_management_recursive/dependency.mo new file mode 100644 index 0000000000..28cf8aece7 --- /dev/null +++ b/e2e/assets/motoko_management_recursive/dependency.mo @@ -0,0 +1,7 @@ +import Management "ic:aaaaa-aa"; + +module Rand { + public func rand() : async Blob { + await Management.raw_rand(); + }; +}; diff --git a/e2e/assets/motoko_management_recursive/main.mo b/e2e/assets/motoko_management_recursive/main.mo new file mode 100644 index 0000000000..8fcf9f9bde --- /dev/null +++ b/e2e/assets/motoko_management_recursive/main.mo @@ -0,0 +1,7 @@ +import Rand "dependency"; + +actor { + public func rand() : async Blob { + await Rand.rand(); + }; +}; diff --git a/e2e/assets/motoko_management_recursive/patch.bash b/e2e/assets/motoko_management_recursive/patch.bash new file mode 100644 index 0000000000..da753f124a --- /dev/null +++ b/e2e/assets/motoko_management_recursive/patch.bash @@ -0,0 +1 @@ +jq '.canisters.e2e_project_backend.main="main.mo"' dfx.json | sponge dfx.json diff --git a/e2e/tests-dfx/build.bash b/e2e/tests-dfx/build.bash index 898e003d0a..2be504a37d 100644 --- a/e2e/tests-dfx/build.bash +++ b/e2e/tests-dfx/build.bash @@ -106,6 +106,24 @@ teardown() { assert_match "10World" } +@test "build supports auto-generated idl for management canister imports in motoko" { + install_asset motoko_management + dfx_start + dfx canister create --all + assert_command dfx build + dfx deploy + assert_command dfx canister call e2e_project_backend rand +} + +@test "build supports auto-generated idl for recursive management canister imports in motoko" { + install_asset motoko_management_recursive + dfx_start + dfx canister create --all + assert_command dfx build + dfx deploy + assert_command dfx canister call e2e_project_backend rand +} + @test "build succeeds on default project" { dfx_start dfx canister create --all diff --git a/src/dfx/src/lib/builders/motoko.rs b/src/dfx/src/lib/builders/motoko.rs index 0f2fcb8219..3b3f526d38 100644 --- a/src/dfx/src/lib/builders/motoko.rs +++ b/src/dfx/src/lib/builders/motoko.rs @@ -8,6 +8,7 @@ use crate::lib::error::{BuildError, DfxError, DfxResult}; use crate::lib::metadata::names::{CANDID_ARGS, CANDID_SERVICE}; use crate::lib::models::canister::CanisterPool; use crate::lib::package_arguments::{self, PackageArguments}; +use crate::util::assets::management_idl; use anyhow::Context; use candid::Principal as CanisterId; use dfx_core::config::cache::Cache; @@ -38,6 +39,48 @@ impl MotokoBuilder { } } +#[context("Failed to find imports for canister at '{}'.", info.get_main_path().display())] +fn get_imports(cache: &dyn Cache, info: &MotokoCanisterInfo) -> DfxResult> { + #[context("Failed recursive dependency detection at {}.", file.display())] + fn get_imports_recursive( + cache: &dyn Cache, + file: &Path, + result: &mut BTreeSet, + ) -> DfxResult { + if result.contains(&MotokoImport::Relative(file.to_path_buf())) { + return Ok(()); + } + + result.insert(MotokoImport::Relative(file.to_path_buf())); + + let mut command = cache.get_binary_command("moc")?; + let command = command.arg("--print-deps").arg(file); + let output = command + .output() + .with_context(|| format!("Error executing {:#?}", command))?; + let output = String::from_utf8_lossy(&output.stdout); + + for line in output.lines() { + let import = MotokoImport::try_from(line).context("Failed to create MotokoImport.")?; + match import { + MotokoImport::Relative(path) => { + get_imports_recursive(cache, path.as_path(), result)?; + } + _ => { + result.insert(import); + } + } + } + + Ok(()) + } + + let mut result = BTreeSet::new(); + get_imports_recursive(cache, info.get_main_path(), &mut result)?; + + Ok(result) +} + impl CanisterBuilder for MotokoBuilder { #[context("Failed to get dependencies for canister '{}'.", info.get_name())] fn get_dependencies( @@ -45,52 +88,10 @@ impl CanisterBuilder for MotokoBuilder { pool: &CanisterPool, info: &CanisterInfo, ) -> DfxResult> { - let mut result = BTreeSet::new(); let motoko_info = info.as_info::()?; + let imports = get_imports(self.cache.as_ref(), &motoko_info)?; - #[context("Failed recursive dependency detection at {}.", file.to_string_lossy())] - fn find_deps_recursive( - cache: &dyn Cache, - file: &Path, - result: &mut BTreeSet, - ) -> DfxResult { - if result.contains(&MotokoImport::Relative(file.to_path_buf())) { - return Ok(()); - } - - result.insert(MotokoImport::Relative(file.to_path_buf())); - - let mut command = cache.get_binary_command("moc")?; - let command = command.arg("--print-deps").arg(file); - let output = command - .output() - .with_context(|| format!("Error executing {:#?}", command))?; - - let output = String::from_utf8_lossy(&output.stdout); - for line in output.lines() { - let import = - MotokoImport::try_from(line).context("Failed to create MotokoImport.")?; - match import { - MotokoImport::Canister(_) => { - result.insert(import); - } - MotokoImport::Relative(path) => { - find_deps_recursive(cache, path.as_path(), result)?; - } - MotokoImport::Lib(_) => (), - MotokoImport::Ic(_) => (), - } - } - - Ok(()) - } - find_deps_recursive( - self.cache.as_ref(), - motoko_info.get_main_path(), - &mut result, - )?; - - Ok(result + Ok(imports .iter() .filter_map(|import| { if let MotokoImport::Canister(name) = import { @@ -132,6 +133,14 @@ impl CanisterBuilder for MotokoBuilder { std::fs::create_dir_all(idl_dir_path) .with_context(|| format!("Failed to create {}.", idl_dir_path.to_string_lossy()))?; + // If the management canister is being imported, emit the candid file. + if get_imports(cache.as_ref(), &motoko_info)? + .contains(&MotokoImport::Ic("aaaaa-aa".to_string())) + { + let management_idl_path = idl_dir_path.join("aaaaa-aa.did"); + dfx_core::fs::write(management_idl_path, management_idl()?)?; + } + let package_arguments = package_arguments::load(cache.as_ref(), motoko_info.get_packtool())?; diff --git a/src/dfx/src/util/assets.rs b/src/dfx/src/util/assets.rs index 9500024f54..d4a417368a 100644 --- a/src/dfx/src/util/assets.rs +++ b/src/dfx/src/util/assets.rs @@ -107,3 +107,206 @@ pub fn bitcoin_wasm(logger: &slog::Logger) -> DfxResult> { bail!("Failed to find bitcoin canister archive entry"); } } + +pub fn management_idl() -> DfxResult { + // FIXME get idl from replica when it's available + // Pulled from https://github.com/dfinity/interface-spec/blob/master/spec/_attachments/ic.did + Ok(r##" +type canister_id = principal; +type wasm_module = blob; + +type canister_settings = record { + controllers : opt vec principal; + compute_allocation : opt nat; + memory_allocation : opt nat; + freezing_threshold : opt nat; +}; + +type definite_canister_settings = record { + controllers : vec principal; + compute_allocation : nat; + memory_allocation : nat; + freezing_threshold : nat; +}; + +type change_origin = variant { + from_user : record { + user_id : principal; + }; + from_canister : record { + canister_id : principal; + canister_version : opt nat64; + }; +}; + +type change_details = variant { + creation : record { + controllers : vec principal; + }; + code_uninstall; + code_deployment : record { + mode : variant {install; reinstall; upgrade}; + module_hash : blob; + }; + controllers_change : record { + controllers : vec principal; + }; +}; + +type change = record { + timestamp_nanos : nat64; + canister_version : nat64; + origin : change_origin; + details : change_details; +}; + +type http_header = record { name: text; value: text }; + +type http_response = record { + status: nat; + headers: vec http_header; + body: blob; +}; + +type ecdsa_curve = variant { secp256k1; }; + +type satoshi = nat64; + +type bitcoin_network = variant { + mainnet; + testnet; +}; + +type bitcoin_address = text; + +type block_hash = blob; + +type outpoint = record { + txid : blob; + vout : nat32 +}; + +type utxo = record { + outpoint: outpoint; + value: satoshi; + height: nat32; +}; + +type get_utxos_request = record { + address : bitcoin_address; + network: bitcoin_network; + filter: opt variant { + min_confirmations: nat32; + page: blob; + }; +}; + +type get_current_fee_percentiles_request = record { + network: bitcoin_network; +}; + +type get_utxos_response = record { + utxos: vec utxo; + tip_block_hash: block_hash; + tip_height: nat32; + next_page: opt blob; +}; + +type get_balance_request = record { + address : bitcoin_address; + network: bitcoin_network; + min_confirmations: opt nat32; +}; + +type send_transaction_request = record { + transaction: blob; + network: bitcoin_network; +}; + +type millisatoshi_per_byte = nat64; + +service ic : { + create_canister : (record { + settings : opt canister_settings; + sender_canister_version : opt nat64; + }) -> (record {canister_id : canister_id}); + update_settings : (record { + canister_id : principal; + settings : canister_settings; + sender_canister_version : opt nat64; + }) -> (); + install_code : (record { + mode : variant {install; reinstall; upgrade}; + canister_id : canister_id; + wasm_module : wasm_module; + arg : blob; + sender_canister_version : opt nat64; + }) -> (); + uninstall_code : (record { + canister_id : canister_id; + sender_canister_version : opt nat64; + }) -> (); + start_canister : (record {canister_id : canister_id}) -> (); + stop_canister : (record {canister_id : canister_id}) -> (); + canister_status : (record {canister_id : canister_id}) -> (record { + status : variant { running; stopping; stopped }; + settings: definite_canister_settings; + module_hash: opt blob; + memory_size: nat; + cycles: nat; + idle_cycles_burned_per_day: nat; + }); + canister_info : (record { + canister_id : canister_id; + num_requested_changes : opt nat64; + }) -> (record { + total_num_changes : nat64; + recent_changes : vec change; + module_hash : opt blob; + controllers : vec principal; + }); + delete_canister : (record {canister_id : canister_id}) -> (); + deposit_cycles : (record {canister_id : canister_id}) -> (); + raw_rand : () -> (blob); + http_request : (record { + url : text; + max_response_bytes: opt nat64; + method : variant { get; head; post }; + headers: vec http_header; + body : opt blob; + transform : opt record { + function : func (record {response : http_response; context : blob}) -> (http_response) query; + context : blob + }; + }) -> (http_response); + + // Threshold ECDSA signature + ecdsa_public_key : (record { + canister_id : opt canister_id; + derivation_path : vec blob; + key_id : record { curve: ecdsa_curve; name: text }; + }) -> (record { public_key : blob; chain_code : blob; }); + sign_with_ecdsa : (record { + message_hash : blob; + derivation_path : vec blob; + key_id : record { curve: ecdsa_curve; name: text }; + }) -> (record { signature : blob }); + + // bitcoin interface + bitcoin_get_balance: (get_balance_request) -> (satoshi); + bitcoin_get_utxos: (get_utxos_request) -> (get_utxos_response); + bitcoin_send_transaction: (send_transaction_request) -> (); + bitcoin_get_current_fee_percentiles: (get_current_fee_percentiles_request) -> (vec millisatoshi_per_byte); + + // provisional interfaces for the pre-ledger world + provisional_create_canister_with_cycles : (record { + amount: opt nat; + settings : opt canister_settings; + specified_id: opt canister_id; + sender_canister_version : opt nat64; + }) -> (record {canister_id : canister_id}); + provisional_top_up_canister : + (record { canister_id: canister_id; amount: nat }) -> (); +} +"##.to_string()) +} From 234552b907c5e51c443f62fa53a340aac587c682 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Mon, 2 Oct 2023 05:21:31 -0700 Subject: [PATCH 29/29] feat: add support for reserved_cycles and reserved_cycles_limit (#3404) Adds support for reserved cycles: - `dfx canister status` reports reserved cycles balance and limit - Added `--reserved-cycles-limit` option to `dfx canister create` and `dfx canister update-settings` - Added `reserved_cycles_limit` option for initialization_values that dfx deploy uses when creating canisters. Fixes https://dfinity.atlassian.net/browse/SDK-1243 --- CHANGELOG.md | 10 ++++++ Cargo.lock | 32 +++++++++---------- Cargo.toml | 18 +++++------ docs/cli-reference/dfx-canister.md | 2 ++ docs/dfx-json-schema.json | 14 +++++++- e2e/tests-dfx/create.bash | 15 +++++++++ e2e/tests-dfx/deploy.bash | 13 ++++++++ e2e/tests-dfx/update_settings.bash | 11 +++++++ src/dfx-core/src/config/model/dfinity.rs | 27 +++++++++++++++- src/dfx-core/src/error/dfx_config.rs | 6 ++++ src/dfx/src/commands/canister/create.rs | 32 ++++++++++++++++++- src/dfx/src/commands/canister/delete.rs | 6 +++- src/dfx/src/commands/canister/status.rs | 10 +++++- .../src/commands/canister/update_settings.rs | 28 +++++++++++++++- src/dfx/src/lib/ic_attributes/mod.rs | 24 +++++++++++++- src/dfx/src/lib/migrate.rs | 1 + .../operations/canister/create_canister.rs | 5 +++ .../operations/canister/deploy_canisters.rs | 9 +++++- src/dfx/src/lib/operations/canister/mod.rs | 4 +++ src/dfx/src/util/clap/parsers.rs | 6 ++++ 20 files changed, 240 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 703820bd83..065c77b180 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ # UNRELEASED +### feat: Added support for reserved_cycles and reserved_cycles_limit + +`dfx canister status` will now display the reserved cycles balance and reserved cycles limit for a canister. + +Added command-line options: + - `dfx canister create --reserved-cycles-limit ` + - `dfx canister update-settings --reserved-cycles-limit ` + +In addition, `dfx deploy` will set `reserved_cycles_limit` when creating canisters if specified in `canisters..initialization_values.reserved_cycles_limit` in dfx.json. + ### feat: emit management canister idl when imported by Motoko canister `import management "ic:aaaaa-aa;` diff --git a/Cargo.lock b/Cargo.lock index cae09245f4..36caf124d2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1362,7 +1362,7 @@ dependencies = [ "ic-agent", "ic-asset", "ic-identity-hsm", - "ic-utils 0.28.0", + "ic-utils 0.29.0", "ic-wasm", "indicatif", "itertools 0.10.5", @@ -1431,7 +1431,7 @@ dependencies = [ "humantime-serde", "ic-agent", "ic-identity-hsm", - "ic-utils 0.28.0", + "ic-utils 0.29.0", "k256 0.11.6", "keyring", "lazy_static", @@ -2386,8 +2386,8 @@ dependencies = [ [[package]] name = "ic-agent" -version = "0.28.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" +version = "0.29.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68#b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" dependencies = [ "backoff", "candid 0.9.6", @@ -2395,7 +2395,7 @@ dependencies = [ "hex", "http", "http-body", - "ic-certification 0.27.0", + "ic-certification 1.2.0", "ic-transport-types", "ic-verify-bls-signature", "k256 0.13.1", @@ -2433,7 +2433,7 @@ dependencies = [ "globset", "hex", "ic-agent", - "ic-utils 0.28.0", + "ic-utils 0.29.0", "itertools 0.10.5", "json5", "mime", @@ -2532,9 +2532,9 @@ dependencies = [ [[package]] name = "ic-certification" -version = "0.27.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1120544357d4d2f7540dd5290b952c6305afe24c9620d423e2239560adca2535" +checksum = "a59dc342d11b2067e19d0f146bdec3674de921303ffc762f114d201ebbe0e68a" dependencies = [ "hex", "serde", @@ -2752,8 +2752,8 @@ dependencies = [ [[package]] name = "ic-identity-hsm" -version = "0.28.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" +version = "0.29.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68#b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" dependencies = [ "hex", "ic-agent", @@ -2848,12 +2848,12 @@ dependencies = [ [[package]] name = "ic-transport-types" -version = "0.28.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" +version = "0.29.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68#b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" dependencies = [ "candid 0.9.6", "hex", - "ic-certification 0.27.0", + "ic-certification 1.2.0", "leb128", "serde", "serde_bytes", @@ -2923,8 +2923,8 @@ dependencies = [ [[package]] name = "ic-utils" -version = "0.28.0" -source = "git+https://github.com/dfinity/agent-rs.git?rev=9c4db330d96938d95eda69bbf5878db91aae0aa1#9c4db330d96938d95eda69bbf5878db91aae0aa1" +version = "0.29.0" +source = "git+https://github.com/dfinity/agent-rs.git?rev=b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68#b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" dependencies = [ "async-trait", "candid 0.9.6", @@ -3000,7 +3000,7 @@ dependencies = [ "humantime", "ic-agent", "ic-asset", - "ic-utils 0.28.0", + "ic-utils 0.29.0", "libflate", "num-traits", "pem 1.1.1", diff --git a/Cargo.toml b/Cargo.toml index e0bff1eb37..4cae352f04 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,11 +19,11 @@ license = "Apache-2.0" [workspace.dependencies] candid = "0.9.0" -ic-agent = "0.28.0" +ic-agent = "0.29.0" ic-asset = { path = "src/canisters/frontend/ic-asset" } ic-cdk = "0.10.0" -ic-identity-hsm = "0.28.0" -ic-utils = "0.28.0" +ic-identity-hsm = "0.29.0" +ic-utils = "0.29.0" aes-gcm = "0.9.4" anyhow = "1.0.56" @@ -69,19 +69,19 @@ url = "2.1.0" walkdir = "2.3.2" [patch.crates-io.ic-agent] -version = "0.28.0" +version = "0.29.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "9c4db330d96938d95eda69bbf5878db91aae0aa1" +rev = "b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" [patch.crates-io.ic-identity-hsm] -version = "0.28.0" +version = "0.29.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "9c4db330d96938d95eda69bbf5878db91aae0aa1" +rev = "b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" [patch.crates-io.ic-utils] -version = "0.28.0" +version = "0.29.0" git = "https://github.com/dfinity/agent-rs.git" -rev = "9c4db330d96938d95eda69bbf5878db91aae0aa1" +rev = "b91b85b7b6ba6bfaf9dfd616b7c7c8f966bf8f68" [profile.release] panic = 'abort' diff --git a/docs/cli-reference/dfx-canister.md b/docs/cli-reference/dfx-canister.md index 559ef2549f..555b83df78 100644 --- a/docs/cli-reference/dfx-canister.md +++ b/docs/cli-reference/dfx-canister.md @@ -216,6 +216,7 @@ You can use the following options with the `dfx canister create` command. | `-c`, `--compute-allocation ` | Specifies the canister's compute allocation. This should be a percent in the range [0..100]. | | `--controller ` | Specifies the identity name or the principal of the new controller. | | `--memory-allocation ` | Specifies how much memory the canister is allowed to use in total. This should be a value in the range [0..12 GiB]. A setting of 0 means the canister will have access to memory on a “best-effort” basis: It will only be charged for the memory it uses, but at any point in time may stop running if it tries to allocate more memory when there isn’t space available on the subnet. | +| `--reserved-cycles-limit ` | Specifies the upper limit for the canister's reserved cycles. | | `--no-wallet` | Performs the call with the user Identity as the Sender of messages. Bypasses the Wallet canister. Enabled by default. | | `--with-cycles ` | Specifies the initial cycle balance to deposit into the newly created canister. The specified amount needs to take the canister create fee into account. This amount is deducted from the wallet's cycle balance. | | `--specified-id ` | Attempts to create the canister with this Canister ID | @@ -921,6 +922,7 @@ You can specify the following options for the `dfx canister update-settings` com | `-c`, `--compute-allocation ` | Specifies the canister's compute allocation. This should be a percent in the range [0..100]. | | `--set-controller ` | Specifies the identity name or the principal of the new controller. Can be specified more than once, indicating the canister will have multiple controllers. If any controllers are set with this parameter, any other controllers will be removed. | | `--memory-allocation ` | Specifies how much memory the canister is allowed to use in total. This should be a value in the range [0..12 GiB]. A setting of 0 means the canister will have access to memory on a “best-effort” basis: It will only be charged for the memory it uses, but at any point in time may stop running if it tries to allocate more memory when there isn’t space available on the subnet. | +| `--reserved-cycles-limit ` | Specifies the upper limit of the canister's reserved cycles. | | `--remove-controller ` | Removes a principal from the list of controllers of the canister. | | `--freezing-threshold ` | Set the [freezing threshold](https://internetcomputer.org/docs/current/references/ic-interface-spec/#ic-create_canister) in seconds for a canister. This should be a value in the range [0..2^64^-1]. Very long thresholds require the `--confirm-very-long-freezing-threshold` flag. | | `-y`, `--yes` | Skips yes/no checks by answering 'yes'. Such checks can result in loss of control, so this is not recommended outside of CI. | diff --git a/docs/dfx-json-schema.json b/docs/dfx-json-schema.json index 8d38220a0a..186ca4c6f7 100644 --- a/docs/dfx-json-schema.json +++ b/docs/dfx-json-schema.json @@ -372,7 +372,8 @@ "default": { "compute_allocation": null, "freezing_threshold": null, - "memory_allocation": null + "memory_allocation": null, + "reserved_cycles_limit": null }, "allOf": [ { @@ -848,6 +849,17 @@ ], "format": "uint64", "minimum": 0.0 + }, + "reserved_cycles_limit": { + "title": "Reserved Cycles Limit", + "description": "Specifies the upper limit of the canister's reserved cycles balance.\n\nReserved cycles are cycles that the system sets aside for future use by the canister. If a subnet's storage exceeds 450 GiB, then every time a canister allocates new storage bytes, the system sets aside some amount of cycles from the main balance of the canister. These reserved cycles will be used to cover future payments for the newly allocated bytes. The reserved cycles are not transferable and the amount of reserved cycles depends on how full the subnet is.\n\nA setting of 0 means that the canister will trap if it tries to allocate new storage while the subnet's memory usage exceeds 450 GiB.", + "default": null, + "type": [ + "integer", + "null" + ], + "format": "uint128", + "minimum": 0.0 } } }, diff --git a/e2e/tests-dfx/create.bash b/e2e/tests-dfx/create.bash index a7f04b3ed4..bd16462e84 100644 --- a/e2e/tests-dfx/create.bash +++ b/e2e/tests-dfx/create.bash @@ -14,6 +14,21 @@ teardown() { standard_teardown } +@test "create with reserved cycles limit" { + dfx_start + + assert_command_fail dfx canister create e2e_project_backend --reserved-cycles-limit 470000 + assert_contains "Cannot create a canister using a wallet if the reserved_cycles_limit is set. Please create with --no-wallet or use dfx canister update-settings instead." + + assert_command dfx canister create e2e_project_frontend --no-wallet + assert_command dfx canister status e2e_project_frontend + assert_contains "Reserved Cycles Limit: 5_000_000_000_000 Cycles" + + assert_command dfx canister create e2e_project_backend --reserved-cycles-limit 470000 --no-wallet + assert_command dfx canister status e2e_project_backend + assert_contains "Reserved Cycles Limit: 470_000 Cycles" +} + @test "create succeeds on default project" { dfx_start assert_command dfx canister create --all diff --git a/e2e/tests-dfx/deploy.bash b/e2e/tests-dfx/deploy.bash index 88aa5f05fe..87a69c4a32 100644 --- a/e2e/tests-dfx/deploy.bash +++ b/e2e/tests-dfx/deploy.bash @@ -14,6 +14,19 @@ teardown() { standard_teardown } +@test "deploy with reserved cycles limit" { + dfx_start + cat dfx.json + jq '.canisters.hello_backend.initialization_values.reserved_cycles_limit=860000' dfx.json | sponge dfx.json + assert_command_fail dfx deploy + assert_contains "Cannot create a canister using a wallet if the reserved_cycles_limit is set. Please create with --no-wallet or use dfx canister update-settings instead." + + assert_command dfx deploy --no-wallet + + assert_command dfx canister status hello_backend + assert_contains "Reserved Cycles Limit: 860_000 Cycles" +} + @test "deploy --upgrade-unchanged upgrades even if the .wasm did not change" { dfx_start assert_command dfx deploy diff --git a/e2e/tests-dfx/update_settings.bash b/e2e/tests-dfx/update_settings.bash index 8ad100f00b..54f529948d 100644 --- a/e2e/tests-dfx/update_settings.bash +++ b/e2e/tests-dfx/update_settings.bash @@ -14,6 +14,17 @@ teardown() { standard_teardown } +@test "set reserved cycles limit" { + dfx_start + assert_command dfx deploy hello_backend + assert_command dfx canister status hello_backend + assert_contains "Reserved Cycles Limit: 5_000_000_000_000 Cycles" + + assert_command dfx canister update-settings hello_backend --reserved-cycles-limit 650000 + assert_command dfx canister status hello_backend + assert_contains "Reserved Cycles Limit: 650_000 Cycles" +} + @test "set freezing threshold" { dfx_start assert_command dfx deploy hello_backend diff --git a/src/dfx-core/src/config/model/dfinity.rs b/src/dfx-core/src/config/model/dfinity.rs index 5e233544f5..e67d9a7c38 100644 --- a/src/dfx-core/src/config/model/dfinity.rs +++ b/src/dfx-core/src/config/model/dfinity.rs @@ -10,10 +10,11 @@ use crate::error::dfx_config::GetFreezingThresholdError::GetFreezingThresholdFai use crate::error::dfx_config::GetMemoryAllocationError::GetMemoryAllocationFailed; use crate::error::dfx_config::GetPullCanistersError::PullCanistersSameId; use crate::error::dfx_config::GetRemoteCanisterIdError::GetRemoteCanisterIdFailed; +use crate::error::dfx_config::GetReservedCyclesLimitError::GetReservedCyclesLimitFailed; use crate::error::dfx_config::{ AddDependenciesError, GetCanisterConfigError, GetCanisterNamesWithDependenciesError, GetComputeAllocationError, GetFreezingThresholdError, GetMemoryAllocationError, - GetPullCanistersError, GetRemoteCanisterIdError, + GetPullCanistersError, GetRemoteCanisterIdError, GetReservedCyclesLimitError, }; use crate::error::load_dfx_config::LoadDfxConfigError; use crate::error::load_dfx_config::LoadDfxConfigError::{ @@ -347,6 +348,19 @@ pub struct InitializationValues { #[serde(with = "humantime_serde")] #[schemars(with = "Option")] pub freezing_threshold: Option, + + /// # Reserved Cycles Limit + /// Specifies the upper limit of the canister's reserved cycles balance. + /// + /// Reserved cycles are cycles that the system sets aside for future use by the canister. + /// If a subnet's storage exceeds 450 GiB, then every time a canister allocates new storage bytes, + /// the system sets aside some amount of cycles from the main balance of the canister. + /// These reserved cycles will be used to cover future payments for the newly allocated bytes. + /// The reserved cycles are not transferable and the amount of reserved cycles depends on how full the subnet is. + /// + /// A setting of 0 means that the canister will trap if it tries to allocate new storage while the subnet's memory usage exceeds 450 GiB. + #[schemars(with = "Option")] + pub reserved_cycles_limit: Option, } /// # Declarations Configuration @@ -836,6 +850,17 @@ impl ConfigInterface { .freezing_threshold) } + pub fn get_reserved_cycles_limit( + &self, + canister_name: &str, + ) -> Result, GetReservedCyclesLimitError> { + Ok(self + .get_canister_config(canister_name) + .map_err(|e| GetReservedCyclesLimitFailed(canister_name.to_string(), e))? + .initialization_values + .reserved_cycles_limit) + } + fn get_canister_config( &self, canister_name: &str, diff --git a/src/dfx-core/src/error/dfx_config.rs b/src/dfx-core/src/error/dfx_config.rs index 062ff19a1c..943484f11b 100644 --- a/src/dfx-core/src/error/dfx_config.rs +++ b/src/dfx-core/src/error/dfx_config.rs @@ -40,6 +40,12 @@ pub enum GetFreezingThresholdError { GetFreezingThresholdFailed(String, GetCanisterConfigError), } +#[derive(Error, Debug)] +pub enum GetReservedCyclesLimitError { + #[error("Failed to get reserved cycles limit for canister '{0}': {1}")] + GetReservedCyclesLimitFailed(String, GetCanisterConfigError), +} + #[derive(Error, Debug)] pub enum GetMemoryAllocationError { #[error("Failed to get memory allocation for canister '{0}': {1}")] diff --git a/src/dfx/src/commands/canister/create.rs b/src/dfx/src/commands/canister/create.rs index ee152f6aac..7793120e69 100644 --- a/src/dfx/src/commands/canister/create.rs +++ b/src/dfx/src/commands/canister/create.rs @@ -2,7 +2,8 @@ use crate::lib::deps::get_pull_canisters_in_config; use crate::lib::environment::Environment; use crate::lib::error::{DfxError, DfxResult}; use crate::lib::ic_attributes::{ - get_compute_allocation, get_freezing_threshold, get_memory_allocation, CanisterSettings, + get_compute_allocation, get_freezing_threshold, get_memory_allocation, + get_reserved_cycles_limit, CanisterSettings, }; use crate::lib::identity::wallet::get_or_create_wallet_canister; use crate::lib::operations::canister::create_canister; @@ -10,6 +11,7 @@ use crate::lib::root_key::fetch_root_key_if_needed; use crate::util::clap::parsers::cycle_amount_parser; use crate::util::clap::parsers::{ compute_allocation_parser, freezing_threshold_parser, memory_allocation_parser, + reserved_cycles_limit_parser, }; use anyhow::{bail, Context}; use byte_unit::Byte; @@ -62,6 +64,18 @@ pub struct CanisterCreateOpts { #[arg(long, value_parser = freezing_threshold_parser, hide = true)] freezing_threshold: Option, + /// Specifies the upper limit of the canister's reserved cycles balance. + /// + /// Reserved cycles are cycles that the system sets aside for future use by the canister. + /// If a subnet's storage exceeds 450 GiB, then every time a canister allocates new storage bytes, + /// the system sets aside some amount of cycles from the main balance of the canister. + /// These reserved cycles will be used to cover future payments for the newly allocated bytes. + /// The reserved cycles are not transferable and the amount of reserved cycles depends on how full the subnet is. + /// + /// A setting of 0 means that the canister will trap if it tries to allocate new storage while the subnet's memory usage exceeds 450 GiB. + #[arg(long, value_parser = reserved_cycles_limit_parser, hide = true)] + reserved_cycles_limit: Option, + /// Performs the call with the user Identity as the Sender of messages. /// Bypasses the Wallet canister. #[arg(long)] @@ -160,6 +174,12 @@ pub async fn exec( Some(canister_name), ) .with_context(|| format!("Failed to read freezing threshold of {}.", canister_name))?; + let reserved_cycles_limit = get_reserved_cycles_limit( + opts.reserved_cycles_limit, + Some(config_interface), + Some(canister_name), + ) + .with_context(|| format!("Failed to read reserved cycles limit of {}.", canister_name))?; create_canister( env, canister_name, @@ -171,6 +191,7 @@ pub async fn exec( compute_allocation, memory_allocation, freezing_threshold, + reserved_cycles_limit, }, ) .await?; @@ -219,6 +240,14 @@ pub async fn exec( .with_context(|| { format!("Failed to read freezing threshold of {}.", canister_name) })?; + let reserved_cycles_limit = get_reserved_cycles_limit( + opts.reserved_cycles_limit, + Some(config_interface), + Some(canister_name), + ) + .with_context(|| { + format!("Failed to read reserved cycles limit of {}.", canister_name) + })?; create_canister( env, canister_name, @@ -230,6 +259,7 @@ pub async fn exec( compute_allocation, memory_allocation, freezing_threshold, + reserved_cycles_limit, }, ) .await?; diff --git a/src/dfx/src/commands/canister/delete.rs b/src/dfx/src/commands/canister/delete.rs index 1f4e5eff29..88c2b0de58 100644 --- a/src/dfx/src/commands/canister/delete.rs +++ b/src/dfx/src/commands/canister/delete.rs @@ -19,7 +19,7 @@ use dfx_core::identity::CallSender; use fn_error_context::context; use ic_utils::call::AsyncCall; use ic_utils::interfaces::management_canister::attributes::{ - ComputeAllocation, FreezingThreshold, MemoryAllocation, + ComputeAllocation, FreezingThreshold, MemoryAllocation, ReservedCyclesLimit, }; use ic_utils::interfaces::management_canister::builders::InstallMode; use ic_utils::interfaces::management_canister::CanisterStatus; @@ -36,6 +36,7 @@ const DANK_PRINCIPAL: Principal = // "Couldn't send message" when deleting a canister: increase WITHDRAWAL_COST const WITHDRAWAL_COST: u128 = 10_606_030_000; // 5% higher than a value observed ok locally const MAX_MEMORY_ALLOCATION: u64 = 8589934592; +const DEFAULT_RESERVED_CYCLES_LIMIT: u128 = 5_000_000_000_000; /// Deletes a currently stopped canister. #[derive(Parser)] @@ -161,6 +162,9 @@ async fn delete_canister( compute_allocation: Some(ComputeAllocation::try_from(0u8).unwrap()), memory_allocation: Some(MemoryAllocation::try_from(MAX_MEMORY_ALLOCATION).unwrap()), freezing_threshold: Some(FreezingThreshold::try_from(0u8).unwrap()), + reserved_cycles_limit: Some( + ReservedCyclesLimit::try_from(DEFAULT_RESERVED_CYCLES_LIMIT).unwrap(), + ), }; info!(log, "Setting the controller to identity principal."); update_settings(env, canister_id, settings, call_sender).await?; diff --git a/src/dfx/src/commands/canister/status.rs b/src/dfx/src/commands/canister/status.rs index 0d08ac04c9..bfa2a4787d 100644 --- a/src/dfx/src/commands/canister/status.rs +++ b/src/dfx/src/commands/canister/status.rs @@ -41,7 +41,13 @@ async fn canister_status( .collect(); controllers.sort(); - info!(log, "Canister status call result for {}.\nStatus: {}\nControllers: {}\nMemory allocation: {}\nCompute allocation: {}\nFreezing threshold: {}\nMemory Size: {:?}\nBalance: {} Cycles\nModule hash: {}", + let reserved_cycles_limit = if let Some(limit) = status.settings.reserved_cycles_limit { + format!("{} Cycles", limit) + } else { + "Not Set".to_string() + }; + + info!(log, "Canister status call result for {}.\nStatus: {}\nControllers: {}\nMemory allocation: {}\nCompute allocation: {}\nFreezing threshold: {}\nMemory Size: {:?}\nBalance: {} Cycles\nReserved: {} Cycles\nReserved Cycles Limit: {}\nModule hash: {}", canister, status.status, controllers.join(" "), @@ -50,6 +56,8 @@ async fn canister_status( status.settings.freezing_threshold, status.memory_size, status.cycles, + status.reserved_cycles, + reserved_cycles_limit, status.module_hash.map_or_else(|| "None".to_string(), |v| format!("0x{}", hex::encode(v))) ); Ok(()) diff --git a/src/dfx/src/commands/canister/update_settings.rs b/src/dfx/src/commands/canister/update_settings.rs index b19f846991..b06fae6ae9 100644 --- a/src/dfx/src/commands/canister/update_settings.rs +++ b/src/dfx/src/commands/canister/update_settings.rs @@ -2,12 +2,14 @@ use crate::lib::diagnosis::DiagnosedError; use crate::lib::environment::Environment; use crate::lib::error::{DfxError, DfxResult}; use crate::lib::ic_attributes::{ - get_compute_allocation, get_freezing_threshold, get_memory_allocation, CanisterSettings, + get_compute_allocation, get_freezing_threshold, get_memory_allocation, + get_reserved_cycles_limit, CanisterSettings, }; use crate::lib::operations::canister::{get_canister_status, update_settings}; use crate::lib::root_key::fetch_root_key_if_needed; use crate::util::clap::parsers::{ compute_allocation_parser, freezing_threshold_parser, memory_allocation_parser, + reserved_cycles_limit_parser, }; use anyhow::{bail, Context}; use byte_unit::Byte; @@ -62,6 +64,18 @@ pub struct UpdateSettingsOpts { #[arg(long, value_parser = freezing_threshold_parser)] freezing_threshold: Option, + /// Sets the upper limit of the canister's reserved cycles balance. + /// + /// Reserved cycles are cycles that the system sets aside for future use by the canister. + /// If a subnet's storage exceeds 450 GiB, then every time a canister allocates new storage bytes, + /// the system sets aside some amount of cycles from the main balance of the canister. + /// These reserved cycles will be used to cover future payments for the newly allocated bytes. + /// The reserved cycles are not transferable and the amount of reserved cycles depends on how full the subnet is. + /// + /// A setting of 0 means that the canister will trap if it tries to allocate new storage while the subnet's memory usage exceeds 450 GiB. + #[arg(long, value_parser = reserved_cycles_limit_parser)] + reserved_cycles_limit: Option, + /// Freezing thresholds above ~1.5 years require this flag as confirmation. #[arg(long)] confirm_very_long_freezing_threshold: bool, @@ -122,6 +136,8 @@ pub async fn exec( get_memory_allocation(opts.memory_allocation, config_interface, canister_name)?; let freezing_threshold = get_freezing_threshold(opts.freezing_threshold, config_interface, canister_name)?; + let reserved_cycles_limit = + get_reserved_cycles_limit(opts.reserved_cycles_limit, config_interface, canister_name)?; if let Some(added) = &opts.add_controller { let status = get_canister_status(env, canister_id, call_sender).await?; let mut existing_controllers = status.settings.controllers; @@ -153,6 +169,7 @@ pub async fn exec( compute_allocation, memory_allocation, freezing_threshold, + reserved_cycles_limit, }; update_settings(env, canister_id, settings, call_sender).await?; display_controller_update(&opts, canister_name_or_id); @@ -188,6 +205,14 @@ pub async fn exec( .with_context(|| { format!("Failed to get freezing threshold for {}.", canister_name) })?; + let reserved_cycles_limit = get_reserved_cycles_limit( + opts.reserved_cycles_limit, + Some(config_interface), + Some(canister_name), + ) + .with_context(|| { + format!("Failed to get reserved cycles limit for {}.", canister_name) + })?; if let Some(added) = &opts.add_controller { let status = get_canister_status(env, canister_id, call_sender).await?; let mut existing_controllers = status.settings.controllers; @@ -219,6 +244,7 @@ pub async fn exec( compute_allocation, memory_allocation, freezing_threshold, + reserved_cycles_limit, }; update_settings(env, canister_id, settings, call_sender).await?; display_controller_update(&opts, canister_name); diff --git a/src/dfx/src/lib/ic_attributes/mod.rs b/src/dfx/src/lib/ic_attributes/mod.rs index 77e0cea05f..09d495338e 100644 --- a/src/dfx/src/lib/ic_attributes/mod.rs +++ b/src/dfx/src/lib/ic_attributes/mod.rs @@ -5,7 +5,7 @@ use candid::Principal; use dfx_core::config::model::dfinity::ConfigInterface; use fn_error_context::context; use ic_utils::interfaces::management_canister::attributes::{ - ComputeAllocation, FreezingThreshold, MemoryAllocation, + ComputeAllocation, FreezingThreshold, MemoryAllocation, ReservedCyclesLimit, }; use std::convert::TryFrom; @@ -15,6 +15,7 @@ pub struct CanisterSettings { pub compute_allocation: Option, pub memory_allocation: Option, pub freezing_threshold: Option, + pub reserved_cycles_limit: Option, } #[context("Failed to get compute allocation.")] @@ -80,3 +81,24 @@ pub fn get_freezing_threshold( }) .transpose() } + +#[context("Failed to get reserved cycles limit")] +pub fn get_reserved_cycles_limit( + reserved_cycles_limit: Option, + config_interface: Option<&ConfigInterface>, + canister_name: Option<&str>, +) -> DfxResult> { + let reserved_cycles_limit = match (reserved_cycles_limit, config_interface, canister_name) { + (Some(reserved_cycles_limit), _, _) => Some(reserved_cycles_limit), + (None, Some(config_interface), Some(canister_name)) => { + config_interface.get_reserved_cycles_limit(canister_name)? + } + _ => None, + }; + reserved_cycles_limit + .map(|arg| { + ReservedCyclesLimit::try_from(arg) + .context("Must be a limit between 0 and 2^128-1 inclusive.") + }) + .transpose() +} diff --git a/src/dfx/src/lib/migrate.rs b/src/dfx/src/lib/migrate.rs index 62845ab4e0..18d7710868 100644 --- a/src/dfx/src/lib/migrate.rs +++ b/src/dfx/src/lib/migrate.rs @@ -114,6 +114,7 @@ async fn migrate_canister( compute_allocation: None, freezing_threshold: None, memory_allocation: None, + reserved_cycles_limit: None, }, },)), 0, diff --git a/src/dfx/src/lib/operations/canister/create_canister.rs b/src/dfx/src/lib/operations/canister/create_canister.rs index 1d6ee09171..c093613da6 100644 --- a/src/dfx/src/lib/operations/canister/create_canister.rs +++ b/src/dfx/src/lib/operations/canister/create_canister.rs @@ -121,6 +121,7 @@ async fn create_with_management_canister( .with_optional_compute_allocation(settings.compute_allocation) .with_optional_memory_allocation(settings.memory_allocation) .with_optional_freezing_threshold(settings.freezing_threshold) + .with_optional_reserved_cycles_limit(settings.reserved_cycles_limit) .call_and_wait() .await; const NEEDS_WALLET: &str = "In order to create a canister on this network, you must use a wallet in order to allocate cycles to the new canister. \ @@ -152,6 +153,10 @@ async fn create_with_wallet( ) -> DfxResult { let wallet = build_wallet_canister(*wallet_id, agent).await?; let cycles = with_cycles.unwrap_or(CANISTER_CREATE_FEE + CANISTER_INITIAL_CYCLE_BALANCE); + if settings.reserved_cycles_limit.is_some() { + bail!( + "Cannot create a canister using a wallet if the reserved_cycles_limit is set. Please create with --no-wallet or use dfx canister update-settings instead.") + } match wallet .wallet_create_canister( cycles, diff --git a/src/dfx/src/lib/operations/canister/deploy_canisters.rs b/src/dfx/src/lib/operations/canister/deploy_canisters.rs index 7984f6cb76..fb1fccb2d1 100644 --- a/src/dfx/src/lib/operations/canister/deploy_canisters.rs +++ b/src/dfx/src/lib/operations/canister/deploy_canisters.rs @@ -20,7 +20,7 @@ use dfx_core::config::model::dfinity::Config; use dfx_core::identity::CallSender; use fn_error_context::context; use ic_utils::interfaces::management_canister::attributes::{ - ComputeAllocation, FreezingThreshold, MemoryAllocation, + ComputeAllocation, FreezingThreshold, MemoryAllocation, ReservedCyclesLimit, }; use ic_utils::interfaces::management_canister::builders::InstallMode; use slog::info; @@ -242,6 +242,12 @@ async fn register_canisters( FreezingThreshold::try_from(arg.as_secs()) .expect("Freezing threshold must be between 0 and 2^64-1, inclusively.") }); + let reserved_cycles_limit = config_interface + .get_reserved_cycles_limit(canister_name)? + .map(|arg| { + ReservedCyclesLimit::try_from(arg) + .expect("Reserved cycles limit must be between 0 and 2^128-1, inclusively.") + }); let controllers = None; create_canister( env, @@ -254,6 +260,7 @@ async fn register_canisters( compute_allocation, memory_allocation, freezing_threshold, + reserved_cycles_limit, }, ) .await?; diff --git a/src/dfx/src/lib/operations/canister/mod.rs b/src/dfx/src/lib/operations/canister/mod.rs index 1107c293b3..767182a021 100644 --- a/src/dfx/src/lib/operations/canister/mod.rs +++ b/src/dfx/src/lib/operations/canister/mod.rs @@ -183,6 +183,10 @@ pub async fn update_settings( .freezing_threshold .map(u64::from) .map(candid::Nat::from), + reserved_cycles_limit: settings + .reserved_cycles_limit + .map(u128::from) + .map(candid::Nat::from), }, }, call_sender, diff --git a/src/dfx/src/util/clap/parsers.rs b/src/dfx/src/util/clap/parsers.rs index e8b5f8360c..290e3da662 100644 --- a/src/dfx/src/util/clap/parsers.rs +++ b/src/dfx/src/util/clap/parsers.rs @@ -84,6 +84,12 @@ pub fn freezing_threshold_parser(freezing_threshold: &str) -> Result Result { + reserved_cycles_limit + .parse::() + .map_err(|_| "Must be a value between 0 and 2^128-1 inclusive".to_string()) +} + /// Validate a String can be a valid project name. /// A project name is valid if it starts with a letter, and is alphanumeric (with hyphens). /// It cannot end with a dash.

  • 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%0D~-q6f*PFwi#+D4*xI81{! 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