@@ -32,6 +32,7 @@ CANISTERS="${@}"
32
32
33
33
ensure_variable_set IDL2JSON
34
34
ensure_variable_set SNS_QUILL
35
+ ensure_variable_set IC_ADMIN
35
36
36
37
ensure_variable_set NNS_URL
37
38
ensure_variable_set SUBNET_URL
@@ -53,6 +54,39 @@ sns_canister_id_for_sns_canister_type() {
53
54
cat $PWD /sns_canister_ids.json | jq -r " .${SNS_CANISTER_TYPE} _canister_id"
54
55
}
55
56
57
+ upgrade_swap () {
58
+ NNS_URL=$1
59
+ NEURON_ID=$2
60
+ PEM=$3
61
+ CANISTER_ID=$4
62
+ VERSION=$5
63
+
64
+ WASM_FILE=$( download_sns_canister_wasm_gz_for_type swap " $VERSION " )
65
+
66
+ propose_upgrade_canister_wasm_file_pem " $NNS_URL " " $NEURON_ID " " $PEM " " $CANISTER_ID " " $WASM_FILE "
67
+ }
68
+
69
+ upgrade_sns () {
70
+ NNS_URL=$1
71
+ SUBNET_URL=$2
72
+ NEURON_ID=$3
73
+ PEM=$4
74
+ CANISTER_NAME=$5
75
+ VERSION=$6
76
+ LOG_FILE=$7
77
+ SWAP_CANISTER_ID=$8
78
+ GOV_CANISTER_ID=$9
79
+
80
+ # SNS upgrade proposal
81
+ if [[ $CANISTER_NAME = " swap" ]]; then
82
+ echo " Submitting upgrade proposal to NNS Governance for Swap" | tee -a " $LOG_FILE "
83
+ upgrade_swap " $NNS_URL " " $NEURON_ID " " $PEM " " $SWAP_CANISTER_ID " " $VERSION "
84
+ else
85
+ echo " Submitting upgrade proposal to $GOV_CANISTER_ID " | tee -a " $LOG_FILE "
86
+ sns_upgrade_to_next_version " $SUBNET_URL " " $PEM " " $GOV_CANISTER_ID " 0
87
+ fi
88
+ }
89
+
56
90
echo " $PERMUTATIONS " \
57
91
| while read -r ORDERING; do
58
92
@@ -67,7 +101,8 @@ echo "$PERMUTATIONS" \
67
101
echo " Deployed SNS" | tee -a $LOG_FILE
68
102
cat $PWD /sns_canister_ids.json | tee -a $LOG_FILE
69
103
70
- GOV_CANISTER=$( sns_canister_id_for_sns_canister_type governance)
104
+ GOV_CANISTER_ID=$( sns_canister_id_for_sns_canister_type governance)
105
+ SWAP_CANISTER_ID=$( sns_canister_id_for_sns_canister_type swap)
71
106
72
107
# Assert that all canisters have the mainnet hashes so our test is legitimate
73
108
canister_has_hash_installed $SUBNET_URL \
@@ -89,9 +124,8 @@ echo "$PERMUTATIONS" \
89
124
upload_canister_git_version_to_sns_wasm " $NNS_URL " " $NEURON_ID " \
90
125
" $PEM " " $CANISTER " " $VERSION "
91
126
92
- # SNS upgrade proposal
93
- echo " Submitting upgrade proposal to $GOV_CANISTER " | tee -a $LOG_FILE
94
- sns_upgrade_to_next_version " $SUBNET_URL " " $PEM " " $GOV_CANISTER " 0
127
+ upgrade_sns " $NNS_URL " " $SUBNET_URL " " $NEURON_ID " " $PEM " \
128
+ " $CANISTER " " $VERSION " " $LOG_FILE " " $SWAP_CANISTER_ID " " $GOV_CANISTER_ID "
95
129
96
130
echo " Waiting for upgrade..." | tee -a $LOG_FILE
97
131
if ! wait_for_sns_canister_has_version " $SUBNET_URL " \
@@ -100,7 +134,7 @@ echo "$PERMUTATIONS" \
100
134
break
101
135
fi
102
136
103
- WASM_GZ_FILE=$( get_sns_canister_wasm_gz_for_type " $CANISTER " " $VERSION " )
137
+ WASM_GZ_FILE=$( download_sns_canister_wasm_gz_for_type " $CANISTER " " $VERSION " )
104
138
105
139
ORIGINAL_HASH=$( sha_256 $WASM_GZ_FILE )
106
140
UNZIPPED=$( ungzip $WASM_GZ_FILE )
@@ -111,9 +145,9 @@ echo "$PERMUTATIONS" \
111
145
fi
112
146
upload_wasm_to_sns_wasm " $NNS_URL " " $NEURON_ID " \
113
147
" $PEM " " $CANISTER " " $UNZIPPED "
114
- # SNS upgrade proposal
115
- echo " Submitting unzipped proposal to $GOV_CANISTER " | tee -a $LOG_FILE
116
- sns_upgrade_to_next_version " $SUBNET_URL " " $PEM " " $GOV_CANISTER " 0
148
+
149
+ upgrade_sns " $NNS_URL " " $SUBNET_URL " " $NEURON_ID " " $PEM " \
150
+ " $CANISTER " " $VERSION " " $LOG_FILE " " $SWAP_CANISTER_ID " " $GOV_CANISTER_ID "
117
151
118
152
if ! wait_for_canister_has_file_contents " $SUBNET_URL " \
119
153
$( sns_canister_id_for_sns_canister_type $CANISTER ) " $UNZIPPED " ; then
0 commit comments