|
45 | 45 | },
|
46 | 46 | {
|
47 | 47 | "cell_type": "code",
|
48 |
| - "execution_count": 1, |
| 48 | + "execution_count": 2, |
49 | 49 | "metadata": {},
|
50 | 50 | "outputs": [
|
51 | 51 | {
|
|
77 | 77 | },
|
78 | 78 | {
|
79 | 79 | "cell_type": "code",
|
80 |
| - "execution_count": 2, |
| 80 | + "execution_count": 3, |
81 | 81 | "metadata": {},
|
82 | 82 | "outputs": [],
|
83 | 83 | "source": [
|
|
112 | 112 | },
|
113 | 113 | {
|
114 | 114 | "cell_type": "code",
|
115 |
| - "execution_count": 3, |
| 115 | + "execution_count": 4, |
116 | 116 | "metadata": {},
|
117 | 117 | "outputs": [],
|
118 | 118 | "source": [
|
|
138 | 138 | },
|
139 | 139 | {
|
140 | 140 | "cell_type": "code",
|
141 |
| - "execution_count": 4, |
| 141 | + "execution_count": 13, |
142 | 142 | "metadata": {},
|
143 | 143 | "outputs": [
|
144 | 144 | {
|
145 | 145 | "name": "stdout",
|
146 | 146 | "output_type": "stream",
|
147 | 147 | "text": [
|
148 |
| - "Connection ID c62331ca-bc95-4f7a-93dd-043f501cb21a\n", |
| 148 | + "Connection ID f06d9c62-3f3c-4b54-8df2-297fa6c7760b\n", |
149 | 149 | "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" |
151 | 151 | ]
|
152 | 152 | }
|
153 | 153 | ],
|
154 | 154 | "source": [
|
155 | 155 | "# Create Invitation\n",
|
156 | 156 | "invite = await agent_controller.connections.create_invitation()\n",
|
157 | 157 | "connection_id = invite[\"connection_id\"]\n",
|
| 158 | + "invite_message = invite['invitation']\n", |
158 | 159 | "print(\"Connection ID\", connection_id)\n",
|
159 | 160 | "print(\"Invitation\")\n",
|
160 | 161 | "print(invite)"
|
|
169 | 170 | },
|
170 | 171 | {
|
171 | 172 | "cell_type": "code",
|
172 |
| - "execution_count": 9, |
| 173 | + "execution_count": 16, |
173 | 174 | "metadata": {},
|
174 | 175 | "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 | + }, |
175 | 183 | {
|
176 | 184 | "ename": "ClientResponseError",
|
177 | 185 | "evalue": "422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')",
|
178 | 186 | "output_type": "error",
|
179 | 187 | "traceback": [
|
180 | 188 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
181 | 189 | "\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", |
183 | 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",
|
184 | 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",
|
185 | 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",
|
|
191 | 199 | "name": "stderr",
|
192 | 200 | "output_type": "stream",
|
193 | 201 | "text": [
|
194 |
| - "Task exception was never retrieved\n", |
| 202 | + "ERROR:asyncio:Task exception was never retrieved\n", |
195 | 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",
|
196 | 204 | "Traceback (most recent call last):\n",
|
197 | 205 | " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py\", line 55, in run\n",
|
|
215 | 223 | }
|
216 | 224 | ],
|
217 | 225 | "source": [
|
218 |
| - "\n", |
| 226 | + "import json\n", |
219 | 227 | "# attachment types can be (credential-offer|present-proof)\n",
|
| 228 | + "invite1 = json.dumps(invite_message)\n", |
220 | 229 | "payload = {\n",
|
221 | 230 | " \"attachments\": [\n",
|
222 | 231 | " {\n",
|
223 | 232 | " \"id\": \"123\",\n",
|
224 |
| - " \"type\": \"application/json\"\n", |
| 233 | + " \"type\": \"credential-offer\",\n", |
| 234 | + " \"data\": invite1\n", |
225 | 235 | " }\n",
|
226 | 236 | " ],\n",
|
227 | 237 | " \"include_handshake\": True,\n",
|
228 | 238 | " \"use_public_did\": False\n",
|
229 | 239 | "}\n",
|
230 | 240 | "\n",
|
| 241 | + "print(payload)\n", |
| 242 | + "\n", |
231 | 243 | "# Create an out of band Invitation\n",
|
232 | 244 | "invite = await agent_controller.oob.create_invitation(payload)\n",
|
233 | 245 | "connection_id = invite[\"connection_id\"]\n",
|
|
0 commit comments