|
170 | 170 | },
|
171 | 171 | {
|
172 | 172 | "cell_type": "code",
|
173 |
| - "execution_count": 16, |
| 173 | + "execution_count": 29, |
174 | 174 | "metadata": {},
|
175 | 175 | "outputs": [
|
176 | 176 | {
|
177 | 177 | "name": "stdout",
|
178 | 178 | "output_type": "stream",
|
179 | 179 | "text": [
|
180 |
| - "{'attachments': [{'id': '123', 'type': 'credential-offer', 'data': {'json': '{\"@type\": \"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation\", \"@id\": \"64cad920-7ca3-4b52-9ab9-a9d1f32abde5\", \"serviceEndpoint\": \"http://192.168.65.3:8020\", \"recipientKeys\": [\"3VX9fa6Z1Sa1wJmsE2GZNvdtFGRqm81bL4BqbWRsc4Sn\"], \"label\": \"Alice\"}'}}], 'include_handshake': True, 'use_public_did': False}\n" |
181 |
| - ] |
182 |
| - }, |
183 |
| - { |
184 |
| - "ename": "ClientResponseError", |
185 |
| - "evalue": "422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')", |
186 |
| - "output_type": "error", |
187 |
| - "traceback": [ |
188 |
| - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
189 |
| - "\u001b[0;31mClientResponseError\u001b[0m Traceback (most recent call last)", |
190 |
| - "\u001b[0;32m<ipython-input-16-77ab6d17bd4f>\u001b[0m in \u001b[0;36masync-def-wrapper\u001b[0;34m()\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mconnection_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minvite\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"connection_id\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Connection ID\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconnection_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 22\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Invitation\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 23\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minvite\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
191 |
| - "\u001b[0;32m/aries_basic_controller/controllers/oob.py\u001b[0m in \u001b[0;36mcreate_invitation\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0;32masync\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcreate_invitation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madmin_POST\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"/out-of-band/create-invitation\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresponse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
192 |
| - "\u001b[0;32m/aries_basic_controller/controllers/base.py\u001b[0m in \u001b[0;36madmin_POST\u001b[0;34m(self, path, json_data, text, params, data)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\" with data: \\n{}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepr_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mjson_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mjson_data\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m\"\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m )\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madmin_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"POST\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtext\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m EVENT_LOGGER.debug(\n\u001b[1;32m 98\u001b[0m \u001b[0;34m\"Response from POST %s received: \\n%s\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrepr_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
193 |
| - "\u001b[0;32m/aries_basic_controller/controllers/base.py\u001b[0m in \u001b[0;36madmin_request\u001b[0;34m(self, method, path, json_data, text, params, data)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madmin_url\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m ) as resp:\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0mresp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_for_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0mresp_text\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mresp_text\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtext\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
194 |
| - "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/aiohttp/client_reqrep.py\u001b[0m in \u001b[0;36mraise_for_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 945\u001b[0m \u001b[0mmessage\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreason\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 946\u001b[0;31m headers=self.headers)\n\u001b[0m\u001b[1;32m 947\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 948\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_cleanup_writer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
195 |
| - "\u001b[0;31mClientResponseError\u001b[0m: 422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')" |
196 |
| - ] |
197 |
| - }, |
198 |
| - { |
199 |
| - "name": "stderr", |
200 |
| - "output_type": "stream", |
201 |
| - "text": [ |
202 |
| - "ERROR:asyncio:Task exception was never retrieved\n", |
203 |
| - "future: <Task finished coro=<run_in_terminal.<locals>.run() done, defined at /opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py:50> exception=UnsupportedOperation('fileno')>\n", |
204 |
| - "Traceback (most recent call last):\n", |
205 |
| - " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py\", line 55, in run\n", |
206 |
| - " return func()\n", |
207 |
| - " File \"/aries_basic_controller/helpers/utils.py\", line 120, in <lambda>\n", |
208 |
| - " run_in_terminal(lambda: print_ext(*msg, color=color, **kwargs))\n", |
209 |
| - " File \"/aries_basic_controller/helpers/utils.py\", line 103, in print_ext\n", |
210 |
| - " print_formatted(FormattedText(msg), **kwargs)\n", |
211 |
| - " File \"/aries_basic_controller/helpers/utils.py\", line 83, in print_formatted\n", |
212 |
| - " prompt_toolkit.print_formatted_text(*args, **kwargs)\n", |
213 |
| - " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/shortcuts/utils.py\", line 112, in print_formatted_text\n", |
214 |
| - " output = get_app_session().output\n", |
215 |
| - " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/current.py\", line 70, in output\n", |
216 |
| - " self._output = create_output()\n", |
217 |
| - " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/output/defaults.py\", line 75, in create_output\n", |
218 |
| - " stdout, term=term_from_env, default_color_depth=color_depth_from_env\n", |
219 |
| - " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/output/vt100.py\", line 458, in from_pty\n", |
220 |
| - " fd = stdout.fileno()\n", |
221 |
| - "io.UnsupportedOperation: fileno\n" |
| 180 | + "{\"include_handshake\": true, \"use_public_did\": false}\n", |
| 181 | + "{\"state\": \"initial\", \"invitation\": {\"@type\": \"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/out-of-band/1.0/invitation\", \"@id\": \"0945a4a3-ab68-44c1-9929-2399d4eb973c\", \"label\": \"Alice\", \"request~attach\": [], \"handshake_protocols\": [\"https://didcomm.org/connections/1.0/invitation\", \"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation\"], \"service\": [{\"id\": \"#inline\", \"type\": \"did-communication\", \"recipientKeys\": [\"did:key:z6Mku6aab9HkD9LNm3ZMrFyzCQ7szRQUFQB91wG52uvaUmXt\"], \"routingKeys\": [], \"serviceEndpoint\": \"http://192.168.65.3:8020\"}]}, \"created_at\": \"2020-10-30 10:27:07.312380Z\", \"invitation_id\": \"c25c888a-ba1a-4ba1-b571-3c50d724dba4\", \"updated_at\": \"2020-10-30 10:27:07.312380Z\", \"trace\": false}\n" |
222 | 182 | ]
|
223 | 183 | }
|
224 | 184 | ],
|
225 | 185 | "source": [
|
226 |
| - "import json\n", |
227 |
| - "# attachment types can be (credential-offer|present-proof)\n", |
228 |
| - "invite1 = json.dumps(invite_message)\n", |
229 | 186 | "payload = {\n",
|
230 |
| - " \"attachments\": [\n", |
231 |
| - " {\n", |
232 |
| - " \"id\": \"123\",\n", |
233 |
| - " \"type\": \"credential-offer\",\n", |
234 |
| - " \"data\": invite1\n", |
235 |
| - " }\n", |
236 |
| - " ],\n", |
237 | 187 | " \"include_handshake\": True,\n",
|
238 | 188 | " \"use_public_did\": False\n",
|
239 | 189 | "}\n",
|
240 |
| - "\n", |
241 |
| - "print(payload)\n", |
| 190 | + "print(json.dumps(payload))\n", |
242 | 191 | "\n",
|
243 | 192 | "# Create an out of band Invitation\n",
|
244 |
| - "invite = await agent_controller.oob.create_invitation(payload)\n", |
245 |
| - "connection_id = invite[\"connection_id\"]\n", |
246 |
| - "print(\"Connection ID\", connection_id)\n", |
247 |
| - "print(\"Invitation\")\n", |
248 |
| - "print(invite)" |
| 193 | + "oob_invite = await agent_controller.oob.create_invitation(json.dumps(payload))\n", |
| 194 | + "print(json.dumps(oob_invite))" |
249 | 195 | ]
|
250 | 196 | },
|
251 | 197 | {
|
|
0 commit comments