Skip to content

Commit 4b6c402

Browse files
committed
updated out of band protocol in notebook
1 parent 4bb7371 commit 4b6c402

File tree

1 file changed

+50
-7
lines changed

1 file changed

+50
-7
lines changed

tutorials/aries-basic-controller/notebooks/alice/Part 3 - Establishing a Connection.ipynb

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -169,24 +169,67 @@
169169
},
170170
{
171171
"cell_type": "code",
172-
"execution_count": 6,
172+
"execution_count": 9,
173173
"metadata": {},
174174
"outputs": [
175175
{
176-
"ename": "AttributeError",
177-
"evalue": "'AriesAgentController' object has no attribute 'oob'",
176+
"ename": "ClientResponseError",
177+
"evalue": "422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')",
178178
"output_type": "error",
179179
"traceback": [
180180
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
181-
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
182-
"\u001b[0;32m<ipython-input-6-2d65f0598135>\u001b[0m in \u001b[0;36masync-def-wrapper\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\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 4\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----> 5\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 6\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",
183-
"\u001b[0;31mAttributeError\u001b[0m: 'AriesAgentController' object has no attribute 'oob'"
181+
"\u001b[0;31mClientResponseError\u001b[0m Traceback (most recent call last)",
182+
"\u001b[0;32m<ipython-input-9-ce68a65b71cb>\u001b[0m in \u001b[0;36masync-def-wrapper\u001b[0;34m()\u001b[0m\n\u001b[1;32m 14\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 15\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---> 16\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 17\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",
183+
"\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",
184+
"\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",
185+
"\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",
186+
"\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",
187+
"\u001b[0;31mClientResponseError\u001b[0m: 422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')"
188+
]
189+
},
190+
{
191+
"name": "stderr",
192+
"output_type": "stream",
193+
"text": [
194+
"Task exception was never retrieved\n",
195+
"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",
196+
"Traceback (most recent call last):\n",
197+
" File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py\", line 55, in run\n",
198+
" return func()\n",
199+
" File \"/aries_basic_controller/helpers/utils.py\", line 120, in <lambda>\n",
200+
" run_in_terminal(lambda: print_ext(*msg, color=color, **kwargs))\n",
201+
" File \"/aries_basic_controller/helpers/utils.py\", line 103, in print_ext\n",
202+
" print_formatted(FormattedText(msg), **kwargs)\n",
203+
" File \"/aries_basic_controller/helpers/utils.py\", line 83, in print_formatted\n",
204+
" prompt_toolkit.print_formatted_text(*args, **kwargs)\n",
205+
" File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/shortcuts/utils.py\", line 112, in print_formatted_text\n",
206+
" output = get_app_session().output\n",
207+
" File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/current.py\", line 70, in output\n",
208+
" self._output = create_output()\n",
209+
" File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/output/defaults.py\", line 75, in create_output\n",
210+
" stdout, term=term_from_env, default_color_depth=color_depth_from_env\n",
211+
" File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/output/vt100.py\", line 458, in from_pty\n",
212+
" fd = stdout.fileno()\n",
213+
"io.UnsupportedOperation: fileno\n"
184214
]
185215
}
186216
],
187217
"source": [
218+
"\n",
219+
"# attachment types can be (credential-offer|present-proof)\n",
220+
"payload = {\n",
221+
" \"attachments\": [\n",
222+
" {\n",
223+
" \"id\": \"123\",\n",
224+
" \"type\": \"application/json\"\n",
225+
" }\n",
226+
" ],\n",
227+
" \"include_handshake\": True,\n",
228+
" \"use_public_did\": False\n",
229+
"}\n",
230+
"\n",
188231
"# Create an out of band Invitation\n",
189-
"invite = await agent_controller.oob.oob_create_invitation()\n",
232+
"invite = await agent_controller.oob.create_invitation(payload)\n",
190233
"connection_id = invite[\"connection_id\"]\n",
191234
"print(\"Connection ID\", connection_id)\n",
192235
"print(\"Invitation\")\n",

0 commit comments

Comments
 (0)