(self, seconds: Int, method: Str = None, url: Str = None, useEddsa=False)
| 4850 | return parsedPositions |
| 4851 | |
| 4852 | def create_auth_token(self, seconds: Int, method: Str = None, url: Str = None, useEddsa=False): |
| 4853 | # v1 https://docs.cdp.coinbase.com/api-reference/authentication#php-2 |
| 4854 | # v2 https://docs.cdp.coinbase.com/api-reference/v2/authentication |
| 4855 | uri = None |
| 4856 | if url is not None: |
| 4857 | uri = method + ' ' + url.replace('https://', '') |
| 4858 | quesPos = uri.find('?') |
| 4859 | # Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True |
| 4860 | # Also it's not possible that the question mark is first character, only check > 0 here. |
| 4861 | if quesPos > 0: |
| 4862 | uri = uri[0:quesPos] |
| 4863 | # self.eddsa{"sub":"d2efa49a-369c-43d7-a60e-ae26e28853c2","iss":"cdp","aud":["cdp_service"],"uris":["GET api.coinbase.com/api/v3/brokerage/transaction_summary"]} |
| 4864 | nonce = self.random_bytes(16) |
| 4865 | aud = 'cdp_service' if useEddsa else 'retail_rest_api_proxy' |
| 4866 | iss = 'cdp' if useEddsa else 'coinbase-cloud' |
| 4867 | request = { |
| 4868 | 'aud': [aud], |
| 4869 | 'iss': iss, |
| 4870 | 'nbf': seconds, |
| 4871 | 'exp': seconds + 120, |
| 4872 | 'sub': self.apiKey, |
| 4873 | 'iat': seconds, |
| 4874 | } |
| 4875 | if uri is not None: |
| 4876 | if not useEddsa: |
| 4877 | request['uri'] = uri |
| 4878 | else: |
| 4879 | request['uris'] = [uri] |
| 4880 | if useEddsa: |
| 4881 | byteArray = self.base64_to_binary(self.secret) |
| 4882 | seed = self.array_slice(byteArray, 0, 32) |
| 4883 | return self.jwt(request, seed, 'sha256', False, {'kid': self.apiKey, 'nonce': nonce, 'alg': 'EdDSA'}) |
| 4884 | else: |
| 4885 | # self.ecdsawith p256 |
| 4886 | return self.jwt(request, self.encode(self.secret), 'sha256', False, {'kid': self.apiKey, 'nonce': nonce, 'alg': 'ES256'}) |
| 4887 | |
| 4888 | def nonce(self): |
| 4889 | return self.milliseconds() - self.options['timeDifference'] |
no test coverage detected