Skip to content

Commit

Permalink
Merge decf086 into bc57ca2
Browse files Browse the repository at this point in the history
  • Loading branch information
anonymoussprocket committed Feb 2, 2021
2 parents bc57ca2 + decf086 commit c5be34b
Show file tree
Hide file tree
Showing 21 changed files with 1,148 additions and 57 deletions.
2 changes: 1 addition & 1 deletion grammar/tezos/Michelson.ne
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ semicolons -> [;]:?
* Given a int, convert it to JSON.
* Example: "3" -> { "int": "3" }
*/
const intToJson = d => `{ "int": "${parseInt(d[0])}" }`;
const intToJson = d => `{ "int": "${d[0]}" }`;

/**
* Given a string, convert it to JSON.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "conseiljs",
"version": "5.0.6-2",
"version": "5.0.7",
"description": "Client-side library for Tezos dApp development.",
"browser": "dist/index-web.js",
"main": "dist/index.js",
Expand Down
3 changes: 3 additions & 0 deletions src/chain/tezos/TezosMessageCodec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ const operationTypes: Map<number, string> = new Map([
[110, 'delegation'] // >=P005
]);

/**
* Reverse lookup table for operation types
*/
const sepyTnoitarepo: Map<string, number> = [...operationTypes.keys()].reduce((m, k) => { const v = operationTypes.get(k) || ''; if (m[v] > k) { return m; } return { ...m, [v]: k } }, new Map());

export namespace TezosMessageCodec {
Expand Down
222 changes: 180 additions & 42 deletions src/chain/tezos/TezosNodeWriter.ts

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/chain/tezos/contracts/BabylonDelegationHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ export namespace BabylonDelegationHelper {
return TezosNodeWriter.sendContractInvocationOperation(server, signer, keyStore, contract, amount, fee, 0, TezosConstants.P005ManagerContractDepositGasLimit, undefined, undefined);
}

export function deployManagerContract(server: string, signer: Signer, keyStore: KeyStore, delegate: string, fee: number, amount: number): Promise<TezosTypes.OperationResult> {
export function deployManagerContract(server: string, signer: Signer, keyStore: KeyStore, delegate: string, fee: number, amount: number, optimizeFee = false): Promise<TezosTypes.OperationResult> {
const code = `[ { "prim": "parameter",
"args":
[ { "prim": "or",
Expand Down Expand Up @@ -159,6 +159,6 @@ export namespace BabylonDelegationHelper {
{ "prim": "PAIR" } ] ] } ] ] } ]`;
const storage = `{ "string": "${keyStore.publicKeyHash}" }`;

return TezosNodeWriter.sendContractOriginationOperation(server, signer, keyStore, amount, delegate, fee, 600, 20000, code, storage, TezosTypes.TezosParameterFormat.Micheline);
return TezosNodeWriter.sendContractOriginationOperation(server, signer, keyStore, amount, delegate, fee, 600, 20000, code, storage, TezosTypes.TezosParameterFormat.Micheline, TezosConstants.HeadBranchOffset, optimizeFee);
}
}
2 changes: 0 additions & 2 deletions src/chain/tezos/contracts/StakerDaoTzip7.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,6 @@ export const StakerDaoTzip7 = {
getSimpleStorage: async function (server: string, address: string): Promise<StakerDaoTzip7Storage> {
const storageResult = await TezosNodeReader.getContractStorage(server, address);

console.log(JSON.stringify(storageResult));

return {
balanceMap: Number(JSONPath({ path: '$.args[1].args[0].args[1].args[0].int', json: storageResult })[0]),
approvalsMap: Number(JSONPath({ path: '$.args[1].args[0].args[0].args[1].int', json: storageResult })[0]),
Expand Down
2 changes: 0 additions & 2 deletions src/chain/tezos/contracts/WrappedTezosHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,6 @@ export namespace WrappedTezosHelper {
export async function getSimpleStorage(server: string, address: string): Promise<WrappedTezosStorage> {
const storageResult = await TezosNodeReader.getContractStorage(server, address);

console.log(JSON.stringify(storageResult));

return {
balanceMap: Number(JSONPath({ path: '$.args[1].args[0].args[1].args[0].int', json: storageResult })[0]),
approvalsMap: Number(JSONPath({ path: '$.args[1].args[0].args[0].args[1].int', json: storageResult })[0]),
Expand Down
2 changes: 1 addition & 1 deletion src/chain/tezos/lexer/Michelson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ const lexer = moo.compile({
* Given a int, convert it to JSON.
* Example: "3" -> { "int": "3" }
*/
const intToJson = d => `{ "int": "${parseInt(d[0])}" }`;
const intToJson = d => `{ "int": "${d[0]}" }`;

/**
* Given a string, convert it to JSON.
Expand Down
60 changes: 54 additions & 6 deletions src/types/tezos/TezosConstants.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,66 @@
/**
* Various constants for the Tezos platforms. Fees are expressed in µtz unless otherwise noted, storage unit is bytes.
*/
export namespace TezosConstants {
export const OperationGroupWatermark = '03';
export const DefaultTransactionStorageLimit = 496; // 300

export const DefaultSimpleTransactionFee = 1420;
export const DefaultTransactionStorageLimit = 496;
export const DefaultTransactionGasLimit = 10600;

export const DefaultDelegationFee = 1258;
export const DefaultDelegationStorageLimit = 0;
export const DefaultDelegationGasLimit = 1101;
export const DefaultDelegationGasLimit = 1100;

/**
* Legacy constants for pre-P005 KT1 delegation account origination. Will be removed in a future release.
*
* @deprecated
*/
export const DefaultAccountOriginationFee = 1266;
/**
* Legacy constants for pre-P005 KT1 delegation account origination. Will be removed in a future release.
*
* @deprecated
*/
export const DefaultAccountOriginationStorageLimit = 496; // 277
/**
* Legacy constants for pre-P005 KT1 delegation account origination. Will be removed in a future release.
*
* @deprecated
*/
export const DefaultAccountOriginationGasLimit = 10600;
export const DefaultAccountOriginationFee = 1266;

export const DefaultKeyRevealFee = 1270;
export const DefaultDelegationFee = 1258;
export const DefaultKeyRevealStorageLimit = 0;
export const DefaultKeyRevealGasLimit = 1100;

export const P005ManagerContractWithdrawalGasLimit = 26283;
export const P005ManagerContractDepositGasLimit = 15285;
export const P005ManagerContractWithdrawalStorageLimit = 496; // 300
export const OperationFeePadding = 100; // µtz
export const P005ManagerContractWithdrawalStorageLimit = 496;

export const P001StorageRate = 1_000_000 / 1000;
export const P007StorageRate = 250_000 / 1000;
export const StorageRate = P007StorageRate;

export const BaseOperationFee = 100;

export const P007OperationGasCap = 1_040_000;
export const OperationGasCap = P007OperationGasCap;

export const OperationStorageCap = 60_000;

export const EmptyAccountStorageBurn = 257;

export const DefaultBakerVig = 100;

export const GasLimitPadding = 100;
export const StorageLimitPadding = 20;

/**
*
*/
export const HeadBranchOffset = 54;

/**
* Outbound operation queue timeout in seconds. After this period, TezosOperationQueue will attempt to submit the transactions currently in queue.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0000025a0200000255050107650765066303590000000c25636865636b526573756c7404820000000325667207650480000000032567310765048100000003256732066303820000000a256d756c526573756c7405000764076408650482000000032566720765048000000003256731048100000003256732000000042561646408650382038200000004256d756c0764046c00000007256e65676174650764065f0765038003810000000e2570616972696e675f636865636b046c0000000625746f496e740502020000019103210317034c0316072e02000000b4072e0200000078034c03210316034c031703210317034c0316057000030321057100040317031603120342034c034203210316034c031703210316034c031703210317034c0316057000040321057100050317031703120342034c0342034c034203210317034c031603210316034c03170570000303160312034c034203420200000030034c03210316034c031703210316034c031703160570000303210317034c0316033a0346034c0342034c0342034c034202000000c3072e020000001e0320032103210316034c031703170570000203170316033b0342034c03420200000099072e0200000018034c03210317034c0316031705700002037f0346034203420200000075032003210316031703300743035b008080808080808080808080808080808080808080808080808080808080aebfbbd5fc95da0903190325072c020000000002000000310743036801000000264661696c656420746f2063617374206669656c6420656c656d656e7420467220746f20496e740327053d036d0342
227 changes: 227 additions & 0 deletions test/chain/tezos/lexer/samples/p008-bls12-381/bls12-381.micheline
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
[
{
"prim": "storage",
"args": [
{
"prim": "pair",
"args": [
{ "prim": "pair", "args": [ { "prim": "option", "args": [ { "prim": "bool" } ], "annots": [ "%checkResult" ] }, { "prim": "bls12_381_fr", "annots": [ "%fr" ] } ] },
{
"prim": "pair",
"args": [
{ "prim": "bls12_381_g1", "annots": [ "%g1" ] },
{
"prim": "pair",
"args": [ { "prim": "bls12_381_g2", "annots": [ "%g2" ] }, { "prim": "option", "args": [ { "prim": "bls12_381_fr" } ], "annots": [ "%mulResult" ] } ]
}
]
}
]
}
]
},
{
"prim": "parameter",
"args": [
{
"prim": "or",
"args": [
{
"prim": "or",
"args": [
{
"prim": "pair",
"args": [
{ "prim": "bls12_381_fr", "annots": [ "%fr" ] },
{ "prim": "pair", "args": [ { "prim": "bls12_381_g1", "annots": [ "%g1" ] }, { "prim": "bls12_381_g2", "annots": [ "%g2" ] } ] }
],
"annots": [ "%add" ]
},
{ "prim": "pair", "args": [ { "prim": "bls12_381_fr" }, { "prim": "bls12_381_fr" } ], "annots": [ "%mul" ] }
]
},
{
"prim": "or",
"args": [
{ "prim": "unit", "annots": [ "%negate" ] },
{
"prim": "or",
"args": [
{ "prim": "list", "args": [ { "prim": "pair", "args": [ { "prim": "bls12_381_g1" }, { "prim": "bls12_381_g2" } ] } ], "annots": [ "%pairing_check" ] },
{ "prim": "unit", "annots": [ "%toInt" ] }
]
}
]
}
]
}
]
},
{
"prim": "code",
"args": [
[
{ "prim": "DUP" },
{ "prim": "CDR" },
{ "prim": "SWAP" },
{ "prim": "CAR" },
{
"prim": "IF_LEFT",
"args": [
[
{
"prim": "IF_LEFT",
"args": [
[
{ "prim": "SWAP" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "DUP" },
{ "prim": "CDR" },
{ "prim": "SWAP" },
{ "prim": "CAR" },
{ "prim": "DIG", "args": [ { "int": "3" } ] },
{ "prim": "DUP" },
{ "prim": "DUG", "args": [ { "int": "4" } ] },
{ "prim": "CDR" },
{ "prim": "CAR" },
{ "prim": "ADD" },
{ "prim": "PAIR" },
{ "prim": "SWAP" },
{ "prim": "PAIR" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "DUP" },
{ "prim": "CDR" },
{ "prim": "SWAP" },
{ "prim": "CAR" },
{ "prim": "DIG", "args": [ { "int": "4" } ] },
{ "prim": "DUP" },
{ "prim": "DUG", "args": [ { "int": "5" } ] },
{ "prim": "CDR" },
{ "prim": "CDR" },
{ "prim": "ADD" },
{ "prim": "PAIR" },
{ "prim": "SWAP" },
{ "prim": "PAIR" },
{ "prim": "SWAP" },
{ "prim": "PAIR" },
{ "prim": "DUP" },
{ "prim": "CDR" },
{ "prim": "SWAP" },
{ "prim": "CAR" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "DIG", "args": [ { "int": "3" } ] },
{ "prim": "CAR" },
{ "prim": "ADD" },
{ "prim": "SWAP" },
{ "prim": "PAIR" },
{ "prim": "PAIR" }
],
[
{ "prim": "SWAP" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "CAR" },
{ "prim": "DIG", "args": [ { "int": "3" } ] },
{ "prim": "DUP" },
{ "prim": "CDR" },
{ "prim": "SWAP" },
{ "prim": "CAR" },
{ "prim": "MUL" },
{ "prim": "SOME" },
{ "prim": "SWAP" },
{ "prim": "PAIR" },
{ "prim": "SWAP" },
{ "prim": "PAIR" },
{ "prim": "SWAP" },
{ "prim": "PAIR" }
]
]
}
],
[
{
"prim": "IF_LEFT",
"args": [
[
{ "prim": "DROP" },
{ "prim": "DUP" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "SWAP" },
{ "prim": "CDR" },
{ "prim": "CDR" },
{ "prim": "DIG", "args": [ { "int": "2" } ] },
{ "prim": "CDR" },
{ "prim": "CAR" },
{ "prim": "NEG" },
{ "prim": "PAIR" },
{ "prim": "SWAP" },
{ "prim": "PAIR" }
],
[
{
"prim": "IF_LEFT",
"args": [
[
{ "prim": "SWAP" },
{ "prim": "DUP" },
{ "prim": "CDR" },
{ "prim": "SWAP" },
{ "prim": "CAR" },
{ "prim": "CDR" },
{ "prim": "DIG", "args": [ { "int": "2" } ] },
{ "prim": "PAIRING_CHECK" },
{ "prim": "SOME" },
{ "prim": "PAIR" },
{ "prim": "PAIR" }
],
[
{ "prim": "DROP" },
{ "prim": "DUP" },
{ "prim": "CAR" },
{ "prim": "CDR" },
{ "prim": "INT" },
{ "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "35115637951021136697019058358166656987035571271296265805438287419849817743725" } ] },
{ "prim": "COMPARE" },
{ "prim": "EQ" },
{
"prim": "IF",
"args": [
[],
[ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "Failed to cast field element Fr to Int" } ] }, { "prim": "FAILWITH" } ]
]
}
]
]
}
]
]
}
]
]
},
{ "prim": "NIL", "args": [ { "prim": "operation" } ] },
{ "prim": "PAIR" }
]
]
}
]

0 comments on commit c5be34b

Please sign in to comment.