Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
89f34fc4
Commit
89f34fc4
authored
May 16, 2018
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
decode / encode tuple
parent
cd2716d3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
3 deletions
+14
-3
txFormat.js
remix-lib/src/execution/txFormat.js
+2
-1
txHelper.js
remix-lib/src/execution/txHelper.js
+10
-1
txListener.js
remix-lib/src/execution/txListener.js
+2
-1
No files found.
remix-lib/src/execution/txFormat.js
View file @
89f34fc4
...
...
@@ -365,7 +365,8 @@ module.exports = {
var
outputTypes
=
[]
for
(
i
=
0
;
i
<
fnabi
.
outputs
.
length
;
i
++
)
{
outputTypes
.
push
(
fnabi
.
outputs
[
i
].
type
)
var
type
=
fnabi
.
outputs
[
i
].
type
outputTypes
.
push
(
type
===
'tuple'
?
helper
.
makeFullTupleTypeDefinition
(
fnabi
.
outputs
[
i
])
:
type
)
}
if
(
!
response
.
length
)
response
=
new
Uint8Array
(
32
*
fnabi
.
outputs
.
length
)
// ensuring the data is at least filled by 0 cause `AbiCoder` throws if there's not engouh data
...
...
remix-lib/src/execution/txHelper.js
View file @
89f34fc4
...
...
@@ -2,12 +2,21 @@
var
ethers
=
require
(
'ethers'
)
module
.
exports
=
{
makeFullTupleTypeDefinition
:
function
(
typeDef
)
{
var
innerTypes
=
[]
if
(
typeDef
&&
typeDef
.
type
===
'tuple'
&&
typeDef
.
components
)
{
typeDef
.
components
.
map
((
innerType
)
=>
innerTypes
.
push
(
innerType
.
type
))
return
'tuple('
+
innerTypes
.
join
(
','
)
+
')'
}
return
typeDef
.
type
},
encodeParams
:
function
(
funABI
,
args
)
{
var
types
=
[]
if
(
funABI
.
inputs
&&
funABI
.
inputs
.
length
)
{
for
(
var
i
=
0
;
i
<
funABI
.
inputs
.
length
;
i
++
)
{
var
type
=
funABI
.
inputs
[
i
].
type
types
.
push
(
type
)
types
.
push
(
type
===
'tuple'
?
this
.
makeFullTupleTypeDefinition
(
funABI
.
inputs
[
i
])
:
type
)
if
(
args
.
length
<
types
.
length
)
{
args
.
push
(
''
)
}
...
...
remix-lib/src/execution/txListener.js
View file @
89f34fc4
...
...
@@ -329,7 +329,8 @@ class TxListener {
var
inputTypes
=
[]
for
(
var
i
=
0
;
i
<
abi
.
inputs
.
length
;
i
++
)
{
inputTypes
.
push
(
abi
.
inputs
[
i
].
type
)
var
type
=
abi
.
inputs
[
i
].
type
inputTypes
.
push
(
type
===
'tuple'
?
txHelper
.
makeFullTupleTypeDefinition
(
abi
.
inputs
[
i
])
:
type
)
}
var
abiCoder
=
new
ethers
.
utils
.
AbiCoder
()
var
decoded
=
abiCoder
.
decode
(
inputTypes
,
data
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment