From 4b163366c16bd0e28ea4af6484c7f8a8fa51c35f Mon Sep 17 00:00:00 2001 From: lilin Date: Fri, 15 Mar 2019 08:03:51 +0800 Subject: [PATCH 1/2] some enhancements --- mixin_api.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/mixin_api.py b/mixin_api.py index d124c30..0b2ac70 100644 --- a/mixin_api.py +++ b/mixin_api.py @@ -223,6 +223,32 @@ def __genNetworkGetRequest(self, path, body=None, auth_token=""): result_obj = r.json() return result_obj + """ + generate Mixin Network GET http request for snapshot + """ + def __genNetworkGetRequest_snapshots(self, path, body=None, auth_token=""): + if body is not None: + body = urlencode(body) + else: + body = "" + + + url = self.__genUrl(path+"?" + body) + + if auth_token == "": + token = self.genGETJwtToken(path+"?" + body, "", str(uuid.uuid4())) + auth_token = token.decode('utf8') + + r = requests.get(url, headers={"Authorization": "Bearer " + auth_token, 'Content-Type': 'application/json', 'Content-length': '0'}) + result_obj = r.json() + snapshots_of_accoung = [] + USDT_Snapshots = result_obj.get('data') + for singleSnapShot in USDT_Snapshots: + if "user_id" in singleSnapShot: + snapshots_of_accoung.append(singleSnapShot) + + return snapshots_of_accoung + """ generate Mixin Network POST http request @@ -441,16 +467,24 @@ def createAddress(self, asset_id, public_key = "", label = "", account_name = "" "account_name": account_name, "account_tag": account_tag, } - print(body) return self.__genNetworkPostRequest('/addresses', body) + def createAddressEOS(self, asset_id, account_name, account_tag, label = ""): + body = { + "asset_id": asset_id, + "pin": self.genEncrypedPin().decode(), + "account_name": account_name, + "account_tag": account_tag, + "label": label, + } + return self.__genNetworkPostRequest('/addresses', body) """ Delete an address by ID. """ def delAddress(self, address_id): - encrypted_pin = self.genEncrypedPin() + encrypted_pin = self.genEncrypedPin().decode() body = {"pin": encrypted_pin} @@ -461,7 +495,7 @@ def delAddress(self, address_id): Read an address by ID. """ def getAddress(self, address_id): - return self.__genNetworkGetRequest('/addresses' + address_id) + return self.__genNetworkGetRequest('/addresses/' + address_id) """ Transfer of assets between Mixin Network users. @@ -557,8 +591,10 @@ def snapshots(self, offset, asset_id, order='DESC',limit=100): "asset":asset_id, "order":order } + finalURL = "/network/snapshots?offset=%s&asset=%s&order=%s&limit=%d" % (offset, asset_id, order, limit) - return self.__genGetRequest('/network/snapshots', body) + + return self.__genGetRequest(finalURL) """ @@ -566,3 +602,17 @@ def snapshots(self, offset, asset_id, order='DESC',limit=100): """ def snapshot(self, snapshot_id): return self.__genGetRequest('/network/snapshots/' + snapshot_id) + """ + Read this account snapshots of Mixin Network. Beaer token is required + """ + def account_snapshots(self, offset, asset_id, order='DESC',limit=100): + # TODO: SET offset default(UTC TIME) + body = { + "limit":limit, + "offset":offset, + "asset":asset_id, + "order":order + } + + + return self.__genNetworkGetRequest_snapshots("/network/snapshots", body) From 11ef1ff93c03788ec17af6b302bbed946982aed1 Mon Sep 17 00:00:00 2001 From: lilin Date: Fri, 15 Mar 2019 14:13:07 +0800 Subject: [PATCH 2/2] improve snapshot, add two shortcut and one help function to filter account snapshots --- mixin_api.py | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/mixin_api.py b/mixin_api.py index 0b2ac70..43fd141 100644 --- a/mixin_api.py +++ b/mixin_api.py @@ -239,15 +239,9 @@ def __genNetworkGetRequest_snapshots(self, path, body=None, auth_token=""): token = self.genGETJwtToken(path+"?" + body, "", str(uuid.uuid4())) auth_token = token.decode('utf8') - r = requests.get(url, headers={"Authorization": "Bearer " + auth_token, 'Content-Type': 'application/json', 'Content-length': '0'}) - result_obj = r.json() - snapshots_of_accoung = [] - USDT_Snapshots = result_obj.get('data') - for singleSnapShot in USDT_Snapshots: - if "user_id" in singleSnapShot: - snapshots_of_accoung.append(singleSnapShot) - - return snapshots_of_accoung + r = requests.get(url, headers={"Authorization": "Bearer " + auth_token, 'Content-Type': 'application/json', 'Content-length': '0'}) + result_obj = r.json() + return result_obj """ @@ -292,7 +286,8 @@ def __genNetworkPostRequest(self, path, body, auth_token=""): """ def getMyAssets(self, auth_token=""): - return self.__genGetRequest('/assets', auth_token) + assets_result = self.__genNetworkGetRequest('/assets', auth_token) + return assets_result.get("data") """ Read self profile. @@ -615,4 +610,17 @@ def account_snapshots(self, offset, asset_id, order='DESC',limit=100): } - return self.__genNetworkGetRequest_snapshots("/network/snapshots", body) + result_json = self.__genNetworkGetRequest_snapshots("/network/snapshots", body) + return result_json.get('data') + def account_snapshots_before(self, offset, asset_id, limit=100): + return self.account_snapshots(offset, asset_id, order = "DESC", limit = limit) + def account_snapshots_after(self, offset, asset_id, limit=100): + return self.account_snapshots(offset, asset_id, order = "ASC", limit = limit) + + def find_mysnapshot_in(self, in_snapshots): + mysnapshots_result = [] + for singleSnapShot in in_snapshots: + if "user_id" in singleSnapShot and (singleSnapShot.get("user_id") == self.client_id): + mysnapshots_result.append(singleSnapShot) + return mysnapshots_result +