Skip to content

Commit ed02bd1

Browse files
committed
more testing of out of band protocol in notebook
1 parent 4b6c402 commit ed02bd1

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

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

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
},
4646
{
4747
"cell_type": "code",
48-
"execution_count": 1,
48+
"execution_count": 2,
4949
"metadata": {},
5050
"outputs": [
5151
{
@@ -77,7 +77,7 @@
7777
},
7878
{
7979
"cell_type": "code",
80-
"execution_count": 2,
80+
"execution_count": 3,
8181
"metadata": {},
8282
"outputs": [],
8383
"source": [
@@ -112,7 +112,7 @@
112112
},
113113
{
114114
"cell_type": "code",
115-
"execution_count": 3,
115+
"execution_count": 4,
116116
"metadata": {},
117117
"outputs": [],
118118
"source": [
@@ -138,23 +138,24 @@
138138
},
139139
{
140140
"cell_type": "code",
141-
"execution_count": 4,
141+
"execution_count": 13,
142142
"metadata": {},
143143
"outputs": [
144144
{
145145
"name": "stdout",
146146
"output_type": "stream",
147147
"text": [
148-
"Connection ID c62331ca-bc95-4f7a-93dd-043f501cb21a\n",
148+
"Connection ID f06d9c62-3f3c-4b54-8df2-297fa6c7760b\n",
149149
"Invitation\n",
150-
"{'connection_id': 'c62331ca-bc95-4f7a-93dd-043f501cb21a', 'invitation': {'@type': 'did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation', '@id': '916e944d-cb7e-4e69-99c6-34aac5bea636', 'serviceEndpoint': 'http://172.17.0.1:8020', 'label': 'Alice', 'recipientKeys': ['AGQrdCLtBbPPs5vX8K8RJrns9UyZLzvW5rvszNWrzq1V']}, 'invitation_url': 'http://172.17.0.1:8020?c_i=eyJAdHlwZSI6ICJkaWQ6c292OkJ6Q2JzTlloTXJqSGlxWkRUVUFTSGc7c3BlYy9jb25uZWN0aW9ucy8xLjAvaW52aXRhdGlvbiIsICJAaWQiOiAiOTE2ZTk0NGQtY2I3ZS00ZTY5LTk5YzYtMzRhYWM1YmVhNjM2IiwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwOi8vMTcyLjE3LjAuMTo4MDIwIiwgImxhYmVsIjogIkFsaWNlIiwgInJlY2lwaWVudEtleXMiOiBbIkFHUXJkQ0x0QmJQUHM1dlg4SzhSSnJuczlVeVpMenZXNXJ2c3pOV3J6cTFWIl19'}\n"
150+
"{'connection_id': 'f06d9c62-3f3c-4b54-8df2-297fa6c7760b', 'invitation': {'@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'}, 'invitation_url': 'http://192.168.65.3:8020?c_i=eyJAdHlwZSI6ICJkaWQ6c292OkJ6Q2JzTlloTXJqSGlxWkRUVUFTSGc7c3BlYy9jb25uZWN0aW9ucy8xLjAvaW52aXRhdGlvbiIsICJAaWQiOiAiNjRjYWQ5MjAtN2NhMy00YjUyLTlhYjktYTlkMWYzMmFiZGU1IiwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwOi8vMTkyLjE2OC42NS4zOjgwMjAiLCAicmVjaXBpZW50S2V5cyI6IFsiM1ZYOWZhNloxU2Exd0ptc0UyR1pOdmR0RkdScW04MWJMNEJxYldSc2M0U24iXSwgImxhYmVsIjogIkFsaWNlIn0='}\n"
151151
]
152152
}
153153
],
154154
"source": [
155155
"# Create Invitation\n",
156156
"invite = await agent_controller.connections.create_invitation()\n",
157157
"connection_id = invite[\"connection_id\"]\n",
158+
"invite_message = invite['invitation']\n",
158159
"print(\"Connection ID\", connection_id)\n",
159160
"print(\"Invitation\")\n",
160161
"print(invite)"
@@ -169,17 +170,24 @@
169170
},
170171
{
171172
"cell_type": "code",
172-
"execution_count": 9,
173+
"execution_count": 16,
173174
"metadata": {},
174175
"outputs": [
176+
{
177+
"name": "stdout",
178+
"output_type": "stream",
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+
},
175183
{
176184
"ename": "ClientResponseError",
177185
"evalue": "422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')",
178186
"output_type": "error",
179187
"traceback": [
180188
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
181189
"\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",
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",
183191
"\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",
184192
"\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",
185193
"\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",
@@ -191,7 +199,7 @@
191199
"name": "stderr",
192200
"output_type": "stream",
193201
"text": [
194-
"Task exception was never retrieved\n",
202+
"ERROR:asyncio:Task exception was never retrieved\n",
195203
"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",
196204
"Traceback (most recent call last):\n",
197205
" File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py\", line 55, in run\n",
@@ -215,19 +223,23 @@
215223
}
216224
],
217225
"source": [
218-
"\n",
226+
"import json\n",
219227
"# attachment types can be (credential-offer|present-proof)\n",
228+
"invite1 = json.dumps(invite_message)\n",
220229
"payload = {\n",
221230
" \"attachments\": [\n",
222231
" {\n",
223232
" \"id\": \"123\",\n",
224-
" \"type\": \"application/json\"\n",
233+
" \"type\": \"credential-offer\",\n",
234+
" \"data\": invite1\n",
225235
" }\n",
226236
" ],\n",
227237
" \"include_handshake\": True,\n",
228238
" \"use_public_did\": False\n",
229239
"}\n",
230240
"\n",
241+
"print(payload)\n",
242+
"\n",
231243
"# Create an out of band Invitation\n",
232244
"invite = await agent_controller.oob.create_invitation(payload)\n",
233245
"connection_id = invite[\"connection_id\"]\n",

0 commit comments

Comments
 (0)