Add Deversifi proxy support
This commit is contained in:
4
Makefile
4
Makefile
@@ -30,8 +30,8 @@ APP_LOAD_PARAMS += --path "45'"
|
|||||||
|
|
||||||
APPVERSION_M=1
|
APPVERSION_M=1
|
||||||
APPVERSION_N=6
|
APPVERSION_N=6
|
||||||
APPVERSION_P=5
|
APPVERSION_P=6
|
||||||
APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)
|
APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)-dvf1
|
||||||
APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION)
|
APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION)
|
||||||
|
|
||||||
ifeq ($(CHAIN),)
|
ifeq ($(CHAIN),)
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ static const uint8_t const STARKWARE_DEPOSIT_NFT_RECLAIM_ID[SELECTOR_SIZE] = {0x
|
|||||||
static const uint8_t const STARKWARE_WITHDRAW_AND_MINT_ID[SELECTOR_SIZE] = {0xd9, 0x14, 0x43, 0xb7};
|
static const uint8_t const STARKWARE_WITHDRAW_AND_MINT_ID[SELECTOR_SIZE] = {0xd9, 0x14, 0x43, 0xb7};
|
||||||
static const uint8_t const STARKWARE_WITHDRAW_NFT_ID[SELECTOR_SIZE] = {0x01, 0x9b, 0x41, 0x7a};
|
static const uint8_t const STARKWARE_WITHDRAW_NFT_ID[SELECTOR_SIZE] = {0x01, 0x9b, 0x41, 0x7a};
|
||||||
static const uint8_t const STARKWARE_WITHDRAW_NFT_TO_ID[SELECTOR_SIZE] = {0xeb, 0xef, 0x0f, 0xd0};
|
static const uint8_t const STARKWARE_WITHDRAW_NFT_TO_ID[SELECTOR_SIZE] = {0xeb, 0xef, 0x0f, 0xd0};
|
||||||
|
static const uint8_t const STARKWARE_REGISTER_AND_DEPOSIT_TOKEN_ID[SELECTOR_SIZE] = { 0x10, 0x82, 0x08, 0xcf };
|
||||||
|
static const uint8_t const STARKWARE_REGISTER_AND_DEPOSIT_ETH_ID[SELECTOR_SIZE] = { 0xa7, 0x78, 0xc0, 0xc3 };
|
||||||
|
static const uint8_t const STARKWARE_PROXY_DEPOSIT_TOKEN_ID[SELECTOR_SIZE] = { 0xdc, 0xca, 0xd5, 0x24 };
|
||||||
|
static const uint8_t const STARKWARE_PROXY_DEPOSIT_ETH_ID[SELECTOR_SIZE] = { 0x6c, 0xe5, 0xd9, 0x57 };
|
||||||
|
|
||||||
const uint8_t* const STARKWARE_SELECTORS[NUM_STARKWARE_SELECTORS] = {
|
const uint8_t* const STARKWARE_SELECTORS[NUM_STARKWARE_SELECTORS] = {
|
||||||
STARKWARE_REGISTER_ID,
|
STARKWARE_REGISTER_ID,
|
||||||
@@ -84,7 +88,12 @@ const uint8_t* const STARKWARE_SELECTORS[NUM_STARKWARE_SELECTORS] = {
|
|||||||
STARKWARE_DEPOSIT_NFT_RECLAIM_ID,
|
STARKWARE_DEPOSIT_NFT_RECLAIM_ID,
|
||||||
STARKWARE_WITHDRAW_AND_MINT_ID,
|
STARKWARE_WITHDRAW_AND_MINT_ID,
|
||||||
STARKWARE_WITHDRAW_NFT_ID,
|
STARKWARE_WITHDRAW_NFT_ID,
|
||||||
STARKWARE_WITHDRAW_NFT_TO_ID};
|
STARKWARE_WITHDRAW_NFT_TO_ID,
|
||||||
|
STARKWARE_REGISTER_AND_DEPOSIT_TOKEN_ID,
|
||||||
|
STARKWARE_REGISTER_AND_DEPOSIT_ETH_ID,
|
||||||
|
STARKWARE_PROXY_DEPOSIT_TOKEN_ID,
|
||||||
|
STARKWARE_PROXY_DEPOSIT_ETH_ID
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ extern const uint8_t* const ETH2_SELECTORS[NUM_ETH2_SELECTORS];
|
|||||||
|
|
||||||
#ifdef HAVE_STARKWARE
|
#ifdef HAVE_STARKWARE
|
||||||
|
|
||||||
#define NUM_STARKWARE_SELECTORS 16
|
#define NUM_STARKWARE_SELECTORS 20
|
||||||
extern const uint8_t* const STARKWARE_SELECTORS[NUM_STARKWARE_SELECTORS];
|
extern const uint8_t* const STARKWARE_SELECTORS[NUM_STARKWARE_SELECTORS];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -24,14 +24,24 @@ typedef enum {
|
|||||||
STARKWARE_DEPOSIT_NFT_RECLAIM,
|
STARKWARE_DEPOSIT_NFT_RECLAIM,
|
||||||
STARKWARE_WITHDRAW_AND_MINT,
|
STARKWARE_WITHDRAW_AND_MINT,
|
||||||
STARKWARE_WITHDRAW_NFT,
|
STARKWARE_WITHDRAW_NFT,
|
||||||
STARKWARE_WITHDRAW_NFT_TO
|
STARKWARE_WITHDRAW_NFT_TO,
|
||||||
|
STARKWARE_REGISTER_AND_DEPOSIT_TOKEN,
|
||||||
|
STARKWARE_REGISTER_AND_DEPOSIT_ETH,
|
||||||
|
STARKWARE_PROXY_DEPOSIT_TOKEN,
|
||||||
|
STARKWARE_PROXY_DEPOSIT_ETH,
|
||||||
} starkwareSelector_t;
|
} starkwareSelector_t;
|
||||||
|
|
||||||
#ifndef HAVE_TOKENS_EXTRA_LIST
|
#ifndef HAVE_TOKENS_EXTRA_LIST
|
||||||
|
|
||||||
static const uint8_t DEVERSIFI_CONTRACT[] = {0x01, 0x5d, 0x22, 0x04, 0x5d, 0xac, 0xea,
|
static const uint8_t DEVERSIFI_CONTRACT[] = {0x02,
|
||||||
0xb0, 0x3b, 0x15, 0x80, 0x31, 0xec, 0xb7,
|
|
||||||
0xd9, 0xd0, 0x6f, 0xad, 0x24, 0x60, 0x9b};
|
0x5d, 0x22, 0x04, 0x5d, 0xac, 0xea, 0xb0,
|
||||||
|
0x3b, 0x15, 0x80, 0x31, 0xec, 0xb7, 0xd9,
|
||||||
|
0xd0, 0x6f, 0xad, 0x24, 0x60, 0x9b,
|
||||||
|
|
||||||
|
0x7d, 0xe1, 0xf0, 0x42, 0x04, 0xef, 0x29,
|
||||||
|
0x22, 0x9d, 0x84, 0xe7, 0xc0, 0xc2, 0xd1,
|
||||||
|
0x21, 0x6c, 0x28, 0x64, 0x5a, 0x15};
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@@ -112,6 +122,19 @@ static const uint8_t DEVERSIFI_CONTRACT[] = {
|
|||||||
// To Eth Address
|
// To Eth Address
|
||||||
// NFT Contract
|
// NFT Contract
|
||||||
// Token ID
|
// Token ID
|
||||||
|
// register and deposit token : stark key (32), variable signature, verify assetType (32), vault Id (4), quantized amount (32), token address (20), quantum (32)
|
||||||
|
// Register and deposit
|
||||||
|
// Contract Name
|
||||||
|
// From ETH address
|
||||||
|
// Master account
|
||||||
|
// Token Account
|
||||||
|
// Amount
|
||||||
|
// register and deposit : stark key (32), variable signature, verify assetType (32), vault Id (4)
|
||||||
|
// flow similar to register and deposit
|
||||||
|
// deposit token proxy : stark key (32), verify assetType (32), vault Id (4), quantized Amount (32), token address (20), quantum (32)
|
||||||
|
// flow similar to deposit
|
||||||
|
// deposit proxy : stark key (32), verify assetType (32), vault Id (4)
|
||||||
|
// flow similar to deposit
|
||||||
|
|
||||||
static const uint8_t STARKWARE_EXPECTED_DATA_SIZE[] = {0,
|
static const uint8_t STARKWARE_EXPECTED_DATA_SIZE[] = {0,
|
||||||
4 + 32 + 32 + 32 + 32,
|
4 + 32 + 32 + 32 + 32,
|
||||||
@@ -128,7 +151,11 @@ static const uint8_t STARKWARE_EXPECTED_DATA_SIZE[] = {0,
|
|||||||
4 + 32 + 32 + 32 + 32,
|
4 + 32 + 32 + 32 + 32,
|
||||||
0,
|
0,
|
||||||
4 + 32 + 32 + 32,
|
4 + 32 + 32 + 32,
|
||||||
4 + 32 + 32 + 32 + 32};
|
4 + 32 + 32 + 32 + 32,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4 + 32 + 32 + 32 + 32 + 32 + 32,
|
||||||
|
4 + 32 + 32 + 32};
|
||||||
|
|
||||||
static const uint8_t STARKWARE_NUM_SCREENS[] = {4 - 1,
|
static const uint8_t STARKWARE_NUM_SCREENS[] = {4 - 1,
|
||||||
5 - 1,
|
5 - 1,
|
||||||
@@ -145,7 +172,11 @@ static const uint8_t STARKWARE_NUM_SCREENS[] = {4 - 1,
|
|||||||
6 - 1,
|
6 - 1,
|
||||||
4 - 1,
|
4 - 1,
|
||||||
6 - 1,
|
6 - 1,
|
||||||
6 - 1};
|
6 - 1,
|
||||||
|
6 - 1,
|
||||||
|
6 - 1,
|
||||||
|
5 - 1,
|
||||||
|
5 - 1};
|
||||||
|
|
||||||
typedef struct starkware_parameters_t {
|
typedef struct starkware_parameters_t {
|
||||||
uint8_t vaultId[4];
|
uint8_t vaultId[4];
|
||||||
@@ -198,6 +229,49 @@ bool starkware_verify_asset_id(uint8_t *tmp32, uint8_t *tokenId, bool assetTypeO
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool starkware_verify_token(uint8_t *token) {
|
||||||
|
if (quantumSet) {
|
||||||
|
if (dataContext.tokenContext.quantumIndex != MAX_TOKEN) {
|
||||||
|
tokenDefinition_t *currentToken = &tmpCtx.transactionContext.tokens[dataContext.tokenContext.quantumIndex];
|
||||||
|
if (memcmp(token + 32 - 20, currentToken->address, 20) != 0) {
|
||||||
|
PRINTF("Token not matching got %.*H\n", 20, token + 32 - 20);
|
||||||
|
PRINTF("Current token %.*H\n", 20, currentToken->address);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PRINTF("Quantum not set\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PRINTF("Quantum not set\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool starkware_verify_quantum(uint8_t *quantum) {
|
||||||
|
if (quantumSet) {
|
||||||
|
if (dataContext.tokenContext.quantumIndex != MAX_TOKEN) {
|
||||||
|
if (memcmp(quantum, dataContext.tokenContext.quantum, 32) != 0) {
|
||||||
|
PRINTF("Quantum not matching got %.*H\n", 32, quantum);
|
||||||
|
PRINTF("Current quantum %.*H\n", 32, dataContext.tokenContext.quantum);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PRINTF("Quantum not set\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PRINTF("Quantum not set\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool starkware_verify_nft_token_id(uint8_t *tokenId) {
|
bool starkware_verify_nft_token_id(uint8_t *tokenId) {
|
||||||
if (!quantumSet) {
|
if (!quantumSet) {
|
||||||
PRINTF("Quantum not set\n");
|
PRINTF("Quantum not set\n");
|
||||||
@@ -389,6 +463,10 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case STARKWARE_WITHDRAW_AND_MINT:
|
case STARKWARE_WITHDRAW_AND_MINT:
|
||||||
case STARKWARE_WITHDRAW_NFT:
|
case STARKWARE_WITHDRAW_NFT:
|
||||||
case STARKWARE_WITHDRAW_NFT_TO:
|
case STARKWARE_WITHDRAW_NFT_TO:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
memmove(context->starkKey, msg->parameter, 32);
|
memmove(context->starkKey, msg->parameter, 32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -426,10 +504,17 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case STARKWARE_WITHDRAW_AND_MINT:
|
case STARKWARE_WITHDRAW_AND_MINT:
|
||||||
case STARKWARE_WITHDRAW_NFT:
|
case STARKWARE_WITHDRAW_NFT:
|
||||||
case STARKWARE_WITHDRAW_NFT_TO:
|
case STARKWARE_WITHDRAW_NFT_TO:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
context->validToken =
|
context->validToken =
|
||||||
starkware_verify_asset_id(context->amount, msg->parameter, true);
|
starkware_verify_asset_id(context->amount, msg->parameter, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
|
// drop variable byte array signature offset
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -439,6 +524,8 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case 4 + 32 + 32:
|
case 4 + 32 + 32:
|
||||||
switch (context->selectorIndex) {
|
switch (context->selectorIndex) {
|
||||||
case STARKWARE_ESCAPE:
|
case STARKWARE_ESCAPE:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
context->validToken =
|
context->validToken =
|
||||||
starkware_verify_asset_id(context->amount, msg->parameter, true);
|
starkware_verify_asset_id(context->amount, msg->parameter, true);
|
||||||
break;
|
break;
|
||||||
@@ -449,6 +536,8 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case STARKWARE_DEPOSIT_TOKEN:
|
case STARKWARE_DEPOSIT_TOKEN:
|
||||||
case STARKWARE_DEPOSIT_NFT:
|
case STARKWARE_DEPOSIT_NFT:
|
||||||
case STARKWARE_DEPOSIT_NFT_RECLAIM:
|
case STARKWARE_DEPOSIT_NFT_RECLAIM:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
memmove(context->vaultId, msg->parameter + 32 - 4, 4);
|
memmove(context->vaultId, msg->parameter + 32 - 4, 4);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -471,6 +560,7 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
switch (context->selectorIndex) {
|
switch (context->selectorIndex) {
|
||||||
case STARKWARE_ESCAPE:
|
case STARKWARE_ESCAPE:
|
||||||
case STARKWARE_DEPOSIT_TOKEN:
|
case STARKWARE_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
memmove(context->amount, msg->parameter, 32);
|
memmove(context->amount, msg->parameter, 32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -483,16 +573,77 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
context->validToken = starkware_verify_nft_token_id(msg->parameter);
|
context->validToken = starkware_verify_nft_token_id(msg->parameter);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
|
memmove(context->vaultId, msg->parameter + 32 - 4, 4);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
msg->result = ETH_PLUGIN_RESULT_OK;
|
msg->result = ETH_PLUGIN_RESULT_OK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 4 + 32 + 32 + 32 + 32:
|
||||||
|
switch(context->selectorIndex) {
|
||||||
|
switch(context->selectorIndex) {
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
memmove(context->amount, msg->parameter, 32);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
context->validToken = starkware_verify_token(msg->parameter);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
msg->result = ETH_PLUGIN_RESULT_OK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4 + 32 + 32 + 32 + 32 + 32:
|
||||||
|
switch(context->selectorIndex) {
|
||||||
|
switch(context->selectorIndex) {
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
context->validToken = starkware_verify_token(msg->parameter);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
context->validToken = starkware_verify_quantum(msg->parameter);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msg->result = ETH_PLUGIN_RESULT_OK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4 + 32 + 32 + 32 + 32 + 32 + 32:
|
||||||
|
switch(context->selectorIndex) {
|
||||||
|
switch(context->selectorIndex) {
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
context->validToken = starkware_verify_quantum(msg->parameter);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msg->result = ETH_PLUGIN_RESULT_OK;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
switch (context->selectorIndex) {
|
switch (context->selectorIndex) {
|
||||||
case STARKWARE_REGISTER:
|
case STARKWARE_REGISTER:
|
||||||
case STARKWARE_VERIFY_ESCAPE:
|
case STARKWARE_VERIFY_ESCAPE:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
msg->result = ETH_PLUGIN_RESULT_OK;
|
msg->result = ETH_PLUGIN_RESULT_OK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -527,6 +678,8 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case STARKWARE_DEPOSIT_TOKEN:
|
case STARKWARE_DEPOSIT_TOKEN:
|
||||||
case STARKWARE_DEPOSIT_ETH:
|
case STARKWARE_DEPOSIT_ETH:
|
||||||
case STARKWARE_DEPOSIT_NFT:
|
case STARKWARE_DEPOSIT_NFT:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
strcpy(msg->name, "Deposit");
|
strcpy(msg->name, "Deposit");
|
||||||
break;
|
break;
|
||||||
case STARKWARE_DEPOSIT_CANCEL:
|
case STARKWARE_DEPOSIT_CANCEL:
|
||||||
@@ -557,6 +710,10 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case STARKWARE_WITHDRAW_NFT_TO:
|
case STARKWARE_WITHDRAW_NFT_TO:
|
||||||
strcpy(msg->name, "Withdrawal To");
|
strcpy(msg->name, "Withdrawal To");
|
||||||
break;
|
break;
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
|
strcpy(msg->name, "Register&Deposit");
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -583,6 +740,8 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
case 1:
|
case 1:
|
||||||
switch (context->selectorIndex) {
|
switch (context->selectorIndex) {
|
||||||
case STARKWARE_REGISTER:
|
case STARKWARE_REGISTER:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
strcpy(msg->title, "From ETH Address");
|
strcpy(msg->title, "From ETH Address");
|
||||||
starkware_print_eth_address(context->amount, msg->msg);
|
starkware_print_eth_address(context->amount, msg->msg);
|
||||||
break;
|
break;
|
||||||
@@ -592,6 +751,8 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
break;
|
break;
|
||||||
case STARKWARE_DEPOSIT_TOKEN:
|
case STARKWARE_DEPOSIT_TOKEN:
|
||||||
case STARKWARE_DEPOSIT_ETH:
|
case STARKWARE_DEPOSIT_ETH:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
case STARKWARE_DEPOSIT_CANCEL:
|
case STARKWARE_DEPOSIT_CANCEL:
|
||||||
case STARKWARE_DEPOSIT_RECLAIM:
|
case STARKWARE_DEPOSIT_RECLAIM:
|
||||||
case STARKWARE_WITHDRAW:
|
case STARKWARE_WITHDRAW:
|
||||||
@@ -619,12 +780,16 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
switch (context->selectorIndex) {
|
switch (context->selectorIndex) {
|
||||||
case STARKWARE_REGISTER:
|
case STARKWARE_REGISTER:
|
||||||
case STARKWARE_ESCAPE:
|
case STARKWARE_ESCAPE:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
strcpy(msg->title, "Master Account");
|
strcpy(msg->title, "Master Account");
|
||||||
starkware_print_stark_key(context->starkKey, msg->msg);
|
starkware_print_stark_key(context->starkKey, msg->msg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STARKWARE_DEPOSIT_TOKEN:
|
case STARKWARE_DEPOSIT_TOKEN:
|
||||||
case STARKWARE_DEPOSIT_ETH:
|
case STARKWARE_DEPOSIT_ETH:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
case STARKWARE_DEPOSIT_CANCEL:
|
case STARKWARE_DEPOSIT_CANCEL:
|
||||||
case STARKWARE_DEPOSIT_RECLAIM:
|
case STARKWARE_DEPOSIT_RECLAIM:
|
||||||
case STARKWARE_FULL_WITHDRAW:
|
case STARKWARE_FULL_WITHDRAW:
|
||||||
@@ -666,9 +831,12 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
break;
|
break;
|
||||||
case STARKWARE_DEPOSIT_TOKEN:
|
case STARKWARE_DEPOSIT_TOKEN:
|
||||||
case STARKWARE_DEPOSIT_ETH:
|
case STARKWARE_DEPOSIT_ETH:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_PROXY_DEPOSIT_ETH:
|
||||||
strcpy(msg->title, "Amount");
|
strcpy(msg->title, "Amount");
|
||||||
starkware_print_amount(
|
starkware_print_amount(
|
||||||
(context->selectorIndex == STARKWARE_DEPOSIT_ETH ? NULL
|
(((context->selectorIndex == STARKWARE_DEPOSIT_ETH) ||
|
||||||
|
(context->selectorIndex == STARKWARE_PROXY_DEPOSIT_ETH)) ? NULL
|
||||||
: context->amount),
|
: context->amount),
|
||||||
msg->msg,
|
msg->msg,
|
||||||
false);
|
false);
|
||||||
@@ -687,6 +855,12 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
starkware_print_asset_contract(msg->msg);
|
starkware_print_asset_contract(msg->msg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
|
strcpy(msg->title, "Token Account");
|
||||||
|
starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
PRINTF("Unexpected screen %d for %d\n",
|
PRINTF("Unexpected screen %d for %d\n",
|
||||||
msg->screenIndex,
|
msg->screenIndex,
|
||||||
@@ -706,6 +880,16 @@ void starkware_plugin_call(int message, void *parameters) {
|
|||||||
starkware_print_stark_key(dataContext.tokenContext.quantum, msg->msg);
|
starkware_print_stark_key(dataContext.tokenContext.quantum, msg->msg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN:
|
||||||
|
case STARKWARE_REGISTER_AND_DEPOSIT_ETH:
|
||||||
|
strcpy(msg->title, "Amount");
|
||||||
|
starkware_print_amount(
|
||||||
|
((context->selectorIndex == STARKWARE_REGISTER_AND_DEPOSIT_ETH) ? NULL
|
||||||
|
: context->amount),
|
||||||
|
msg->msg,
|
||||||
|
false);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
PRINTF("Unexpected screen %d for %d\n",
|
PRINTF("Unexpected screen %d for %d\n",
|
||||||
msg->screenIndex,
|
msg->screenIndex,
|
||||||
|
|||||||
Reference in New Issue
Block a user